VòngVòng đờiđời đốiđối tượngtượng trongtrong
kếkế
thừathừa
GV. GV. NguyễnNguyễn Minh Minh HuyHuy
kếkế
thừathừa
1Phương pháp lập trình hướng đối tượng - Nguyễn Minh Huy
Nội dungNội dung
KhởiKhởi tạotạo trongtrong kếkế thừathừa
HủyHủy trongtrong kếkế thừathừa
VấnVấn đềđề con con trỏtrỏ trongtrong kếkế thừathừa
2Phương pháp lập trình hướng đối tượng - Nguyễn Minh Huy
Nội dungNội dung
KhởiKhởi tạotạo trongtrong kếkế thừathừa
HủyHủy trongtrong kếkế thừathừa
VấnVấn đềđề con con trỏtrỏ trongtrong kếkế thừathừa
3Phương pháp lập trình hướng đối tượng - Nguyễn Minh Huy
KhởiKhởi tạotạo trongtrong kếkế thừathừa
Trình tự tạo lập đối tượng kế thừa:Trình tự tạo lập đối tượng kế thừa:
Nhà được xây từ móng đến mái.Nhà được xây từ móng đến mái.
Khái niệm được định nghĩa từ thấp đến cao.Khái niệm được định nghĩa từ thấp đến cao.
Đối tượng được tạo lập từ lõi đến vỏ.Đối tượng được tạo lập từ lõi đến vỏ.
Thành phần kế thừa từ lớp cơ sở được tạo trước.Thành phần kế thừa từ lớp cơ sở được tạo trước.
4Phương pháp lập trình hướng đối tượng - Nguyễn Minh Huy
Xây móng đến mái Định nghĩa thấp đến cao
Đối tượng kế thừa
Thành phần mới
Đối tượng cơ sở
Thành phần cơ sở
Tạo lập từ lõi đến vỏ
{{
private:private:
charchar **m_hoTenm_hoTen;;
floatfloat m_mucLuongm_mucLuong;;
intint m_ngayNghim_ngayNghi;;
public:public:
class class GVCNGVCN : public : public GiaoVienGiaoVien
{{
private:private:
charchar **m_lopCNm_lopCN;;
public:public:
GVCN();GVCN();
GVCN(char *GVCN(char *
lopCNlopCN
););
6Phương pháp lập trình hướng đối tượng - Nguyễn Minh Huy
public:public:
GiaoVienGiaoVien();();
GiaoVienGiaoVien(char *(char *hoTenhoTen,,
float float mucLuongmucLuong,,
intint ngayNghingayNghi););
};};
GVCN(char *GVCN(char *
lopCNlopCN
););
GVCN(char *GVCN(char *hoTenhoTen,,
float float mucLuongmucLuong,,
intint ngayNghingayNghi,,
char *char *lopCNlopCN););
};};
}}
GVCNGVCN::GVCN::GVCN()()
{{
}}
GiaoVien() được gọi trước
Nội dungNội dung
KhởiKhởi tạotạo trongtrong kếkế thừathừa
HủyHủy trongtrong kếkế thừathừa
VấnVấn đềđề con con trỏtrỏ trongtrong kếkế thừathừa
8Phương pháp lập trình hướng đối tượng - Nguyễn Minh Huy
HủyHủy trongtrong kếkế thừathừa
TrìnhTrình tựtự hủyhủy đốiđối tượngtượng kếkế thừathừa::
NgượcNgược lạilại vớivới trìnhtrình tựtự tạotạo lậplập
PhươngPhương thứcthức hủyhủy lớplớp kếkế thừathừa đượcđược gọigọi trướctrước
PhầnPhần vỏvỏ bênbên ngoàingoài đượcđược hủyhủy trướctrước
PhươngPhương thứcthức hủyhủy lớplớp kếkế cơcơ sởsở đượcđược gọigọi sausau
9Phương pháp lập trình hướng đối tượng - Nguyễn Minh Huy
PhầnPhần lõilõi cơcơ sởsở đượcđược hủyhủy sausau
MỗiMỗi lớplớp chỉchỉ cócó mộtmột cáchcách hủyhủy
LớpLớp cócó thuộcthuộc tínhtính con con trỏtrỏ??
PhảiPhải tựtự thêmthêm vàovào lớplớp ““baba ôngông lớnlớn””::
PhươngPhương thứcthức hủyhủy
PhươngPhương thứcthức khởikhởi tạotạo saosao chépchép
ToánToán
tửtử
gángán
VấnVấn đềđề con con trỏtrỏ trongtrong kếkế thừathừa
12Phương pháp lập trình hướng đối tượng - Nguyễn Minh Huy
ToánToán
tửtử
gángán
LớpLớp kếkế thừathừa cócó thuộcthuộc tínhtính con con trỏtrỏ??
VấnVấn đềđề con con trỏtrỏ trongtrong kếkế thừathừa
Dr. Guru Dr. Guru khuyênkhuyên::
((LuậtLuật ““baba ôngông lớnlớn” ” trongtrong kếkế thừathừa))
LớpLớp kếkế thừathừa cócó thuộcthuộc tínhtính con con trỏtrỏ::
TrangTrang bịbị ““baba ôngông lớnlớn” ” chocho lớplớp kếkế thừathừa
KíchKích hoạthoạt ““baba ôngông lớnlớn” ” củacủa lớplớp cơcơ sởsở từtừ ““baba ôngông lớnlớn” ”
13Phương pháp lập trình hướng đối tượng - Nguyễn Minh Huy
củacủa lớplớp kếkế thừathừa
VấnVấn đềđề con con trỏtrỏ trongtrong kếkế thừathừa
VíVí dụdụ::
class Aclass A
{{
KhởiKhởi tạotạo từtừ lõilõi đếnđến vỏvỏ
TạoTạo lõilõi: : phươngphương thứcthức khởikhởi tạotạo lớplớp cơcơ sởsở gọigọi trướctrước
TạoTạo vỏvỏ: : phươngphương thứcthức khởikhởi tạotạo lớplớp kếkế thừathừa gọigọi sausau,,
CóCó thểthể chỉchỉ địnhđịnh phươngphương thứcthức khởikhởi tạotạo lớplớp cơcơ sởsở
HủyHủy trongtrong kếkế thừathừa::
HủyHủy từtừ vỏvỏ vàovào lõilõi
HủyHủy lõilõi: : phươngphương thứcthức hủyhủy lớplớp kếkế thừathừa
HủyHủy vỏvỏ: : phươngphương thứcthức hủyhủy lớplớp cơcơ sởsở
LuậtLuật ““baba ôngông lớnlớn” ” trongtrong kếkế thừathừa
15Phương pháp lập trình hướng đối tượng - Nguyễn Minh Huy
BàiBài tậptập
BàiBài tậptập 8.1:8.1:
class Aclass A
{ public:{ public:
A(A(intint iXiX) { }) { }
};};
class B: public Aclass B: public A
{ public:{ public:
B(): A(0) { }B(): A(0) { }
Cho Cho biếtbiết thứthứ tựtự gọigọi hàmhàm dựngdựng vớivới::
a) void main() { C a) void main() { C objobj(1, 2, 3); }(1, 2, 3); }
b) void main() { C b) void main() { C objobj(4); }(4); }
c) void main() { C c) void main() { C objobj; }; }
B(): A(0) { }B(): A(0) { }
B(B(intint iXiX, , intint iYiY): A(): A(iXiX) { }) { }
};};
class C: public Bclass C: public B
{ public:{ public:
C() { }C() { }
public:public:
Z(Z(intint ii): Y(): Y(ii++) { }++) { }
};};
18Phương pháp lập trình hướng đối tượng - Nguyễn Minh Huy
Y obj2(obj1);Y obj2(obj1);
}}
c) void main()c) void main()
{{
Z obj1(7);Z obj1(7);
Z obj2(obj1);Z obj2(obj1);
}}
BàiBài tậptập
BàiBài tậptập 8.4:8.4:
HãyHãy vẽvẽ câycây kếkế thừathừa chocho nhữngnhững lớplớp đốiđối tượngtượng hìnhhình họchọc::
((cócó thểthể phátphát sinhsinh thêmthêm nhữngnhững lớplớp cơcơ sởsở cầncần thiếtthiết))
VuôngVuông Tam Tam giácgiác vuôngvuông
TrònTròn Tam Tam giácgiác câncân
Ellipse.Ellipse.
Tam Tam
giácgiác
vuôngvuông
câncânEllipse.Ellipse.
Tam Tam
giácgiác
thườngthường
: :
giágiá
vévé
ở ở
hànghàng
ghếghế
trungtrung
tâmtâm
làlà
80000.80000.
RạpRạp caocao cấpcấp: : giágiá vévé ở ở hànghàng ghếghế trungtrung tâmtâm làlà 120000, 120000, ngoàingoài rara
rạprạp cócó khuyếnkhuyến mãimãi giảmgiảm 2020% % giágiá vévé vàovào ngàyngày thứthứ nămnăm hànghàng tuầntuần
20Phương pháp lập trình hướng đối tượng - Nguyễn Minh Huy
BàiBài tậptập
BàiBài tậptập 8.5:8.5:
HãyHãy xâyxây dựngdựng lớplớp RapThuongRapThuong vàvà RapCaoCapRapCaoCap, , chocho phépphép::
KhởiKhởi tạotạo rạprạp phimphim vớivới sốsố lươnglương ghếghế M x N M x N chocho trướctrước
ĐặtĐặt vévé tạitại mộtmột vịvị trítrí ghếghế nàonào đóđó
Cho Cho biếtbiết giágiá vévé tạitại mộtmột vịvị trítrí ghếghế nàonào đóđó
Cho Cho
biếtbiết
mộtmột
vịvị
trítrí
ghếghế
nàonào
đóđó
còncòn