
1
Ch
Chươ
ương 4
ng 4
S k th aự ế ừ
S k th aự ế ừ

3
4.1 M ởđ uầ
-S k th a là m t ự ế ừ ộ đ c ặđi m c a ngôn ng dù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ưng hóa và t ch c thành m t sợ ổ ứ ộ ơ đ phân c p l p.ồ ấ ớ
-K th a là m t cế ừ ộ ơ ch tr u tế ừ ư ng hóaợ. Th t c và hàm là ủ ụ
cơ ch tr u tế ừ ư ng hóa cho gi i thu t, record và struct là tr u ợ ả ậ ừ
tưng hó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 và cho ngặ ư i s d ng c m ờ ử ụ ả
giác tho i mái nhả ư ki u d li u có s nể ữ ệ ẵ
-S k th a là m t m c cao hự ế ừ ộ ứ ơn c a tr u tủ ừ ư ng hóa. cung ợ
c p m t cấ ộ ơ ch gom chung các l p có liên quan v i nhau ế ớ ớ
thành m t m c khái quát hóa ộ ứ đ c trặ ưng cho toàn b các l p ộ ớ
nói trên. Các l p v i các ớ ớ đ c ặđi m tể ương t nhau có th ự ể
đưc t ch c thành m t sợ ổ ứ ộ ơ đ phân c p k th a. L p ồ ấ ế ừ ớ ở
trên cùng là tr u từ ư ng hóa c a toàn b các l p bên dợ ủ ộ ớ ỏ ư i ớ
nó.

4
M ởđ uầ
Quan h là 1: ệK th a ế ừ đưc s d ng thông d ng nh t ợ ử ụ ụ ấ đ ể
bi u di n quan h là m t.ể ễ ệ ộ
•M t sinh viên là m t ngộ ộ ư iờ
•M t hình tròn là m t hình ellipseộ ộ
•M t tam giác là m t ộ ộ đa giác
K th a t o kh nế ừ ạ ả ăng xây d ng l p m i t l p ự ớ ớ ừ ớ đã có, 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 thích, nh ờđó ta có 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ác l p chia s mã chế ừ ổ ứ ớ ẻ ương trình
chung nh v y có th d dàng s a ch a, nâ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 và phân c p l p d a vào s chuyên bi t hóa, 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 ữ ớ
không có quan h v m t ng nghĩa nhệ ề ặ ữ ưng có th có t ể ổ
ch c d li u và mã chứ ữ ệ ương trình 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.ứ ả