1
Ch
Chươ
ương 4
ng 4
S k th a ế
S k th a ế
2
N i dung
N i dung
1.
1. M
M đ
đuu
2.
2. K th a ế
K th a ế đơ
đơn
n
3.
3. Ph m vi truy xu t
Ph m vi truy xu t
4.
4. Ph
Phươ
ương th c thi t l p và hu b ế
ng th c thi t l p và hu b ế
5.
5. Con tr và k th a ế
Con tr và k th a ế
3
4.1 M đ u
-S k th a m t ế đ c đi m c a ngôn ng ng đ bi u
di n m i quan h đ c bi t gi a các l p. Các l p đưc tr u
tưnga và t ch c thành m t s ơ đ pn c p l p.
-K th a m t cế ơ ch tr u tế ư ng a. Th t c hàm
cơ ch tr u tế ư nga cho gi i thu t, record struct là tr u
tưng a cho d li u. Khái ni m l p trong C++, k t h p ế
d li u và th t c đ đưc ki u d li u tr u t ư ng v i
giao di n đ c l p v i cài đ t cho ng ư i s d ng c m
giác tho i mái nh ư ki u d li u s n
-S k th a m t m c cao h ế ơn c a tr u t ư ng a. cung
c p m t c ơ ch gom chung c l p liên quan v i nhau ế
thành m t m c khái quát a đ c tr ưng cho toàn b c l p
nói trên. c l p v i các đ c đi m t ương t nhau th
đưc t ch c thành m t s ơ đ phân c p k th a. L p ế
trên cùng tr u t ư ng a c a toàn b c l p bên d ư i
nó.
4
M đ u
Quan h là 1: K th a ế đưc s d ng tng d ng nh t đ
bi u di n quan h m t.
M t sinh vn là m t ng ư i
M t hình tròn m t hình ellipse
M t tam giác m t đa giác
K th a t o kh nế ăng xây d ng l p m i t l p đã, trong
đó hàm thành ph n đưc th a h ư ng t l p cha. Trong C++,
k th a còn ế đ nh nghĩa s t ương tch, nh đó ta cơ ch ế
chuy n ki u t đ ng.
K th a v a có kh nế ăng t o c ơ ch khái quát hoá v a có ế
kh năng chuyên bi t hoá.
K th a cho phép t ch c c l p chia s mã chế ương trình
chung nh v y có th d ng s a ch a,ng c p h th ng.
5
M đ u
K th a thế ư ng đưc dùng theo hai cách:
Đ ph n ánh m i quan h gi a các l p. Là công c đ t
ch c phân c p l p d a vào s chuyên bi ta, trong
đó m t vài hàm thành ph n c a l p con là phiên b n hoàn
thi n ho c đ c bi t hoá c a phiên b n l p cha. Trong
C++ m i quan h này th ư ng đưc cài đ t s d ng:
K th a public.ế
Hàm thành ph n là ph ương th c o
Đ ph n ánh s chia s mã ch ương trình gi a các l p
kng quan h v m t ng nghĩa nh ưng có th có t
ch c d li u và mã ch ương tnh tương t nhau. Trong
C++, cơ ch chia s mã này thế ư ng đưc cài đ t dùng:
K th a private.ế
Hàm thành ph n không là ph ương th c o.