SlideShare a Scribd company logo
THỪA KẾ Bộ môn Hệ Thống Máy Tính và Truyền Thông Khoa Công Nghệ Thông Tin và Truyền Thông Đại học Cần Thơ  CHƯƠNG 9: (INHERITANCE)
Nội dung ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Chương  9
Khái niệm ,[object Object],[object Object],[object Object],[object Object],Chương  9 LỚP CHA (Super class) LỚP CON (Sub class) Lớp cơ sở (Base class) Lớp dẫn xuất (Derived class) STUDENT CIT_STUDENT
Ví dụ minh họa Chương  9 #include <iostream.h> #include <string.h> class  Contact   { private: char   *name;   // ten doi tac char   *address;  // dia chi doi tac char  *tel;   // so dien thoai public: Contact  (const char *name,  const char *address, const char *tel); ~Contact  (); const char*  Name  () const  { return name;} const char*  Address () const { return address;} const char*  Tel () const { return tel;} friend ostream&  operator <<   ( ostream&,  Contact& ); }; class  ContactDir  { private: int Lookup(const char *name); Contact   **contacts;  // ds cac doi tac int dirSize;  // kich thuoc thu muc hien tai int maxSize;  // kich thuoc thu muc toi da  public: ContactDir  (const int maxSize); ~ContactDir (); void  Insert(const Contact&); void  Delete(const char *name); Contact*  Find (const char *name); friend  ostream&  operator << (ostream&, ContactDir&); // …………  };   Ký hiệu composition ContactDir Contact n
Ví dụ minh họa (tt) Chương  9 class  SmartDir  :   public   ContactDir  { private: char *recent; // ten duoc tim gan nhat  public: SmartDir (const int max)  :   ContactDir (max)  { recent = 0; } Contact*  Recent  (void); Contact*  Find   (const char *name); // …………….  };   Contact* SmartDir:: Recent  (void) { return recent == 0 ? 0 :  ContactDir::Find(recent); } Contact* SmartDir:: Find  (const char *name) { Contact *c = ContactDir::Find(name); if (c != 0)  recent = (char*) c->Name(); return c; } Ký hiệu Thừa kế ContactDir Contact n SmartDir
Ví dụ (tt) - mô tả trong bộ nhớ Chương  9 **contacts dirSize maxSize **contacts dirSize maxSize *recent Contact 1 Contact 2 Contact i … Contact 1 Contact 2 Contact i … ContactDir SmartDir *contacts 1 *contacts 2 *contacts 3 *contacts i *contacts n … … *contacts 1 *contacts 2 *contacts 3 *contacts i *contacts n … …
Hàm xây dựng và hàm hủy ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Chương  9 A B C
Hàm xây dựng và hàm hủy (tt) Chương  9 class  SmartDir  :   public   ContactDir  { private: char *recent; // ten duoc tim gan nhat  public: SmartDir (const int max)  :   ContactDir (max)  { recent = 0; } SmartDir (const SmartDir& sd):  ContactDir (sd) { recent = 0; } ~SmartDir () { delete recent;  } // …………….  };   Gọi hàm  xây dựng  của lớp cha Thu hồi vùng nhớ của con trỏ thành viên  của lớp con nếu đã cấp vùng nhớ trong  hàm xây dựng.
Thành viên lớp được bảo vệ ,[object Object],[object Object],[object Object],[object Object],[object Object],Chương  9 class  ContactDir  { //... protected: int   Lookup (const char *name); Contact  **contacts; // ds cac doi tac int   dirSize;   // kich thuoc hien tai int  maxSize;  // kich thuoc toi da };  class  Foo  { public: // cac thanh vien chung... private: // cac thanh vien rieng... protected: // cac thanh vien duoc bao ve... public: // cac thanh vien chung nua... protected: // cac thanh vien duoc bao ve nua... };
Lớp cơ sở riêng, chung và được bảo vệ Chương  9 class  A  { private: int x; void Fx (void); public: int y; void Fy (void); protected: int z; void Fz (void); }; class  B  : A {  // Thừa kế dạng  private   …… . }; class  C   :   private   A {  // A là lớp cơ sở  riêng  của B ……… }; class  D   :   public   A {  // A là lớp cơ sở  chung  của C ……… }; class  E   :   protected   A {  // A: lớp cơ sở  được bảo vệ ……… . }; protected private protected protected protected private public public _ _ _ private Thừa kế  protected Thừa kế  private Thừa kế  public Lớp cơ sở
Đa thừa kế Chương  9 class  Window  { public: Window (Rect &); ~Window (void); //... }; class  Menu   :  public  OptionList , public  Window  { public: Menu (int n, Rect &bounds); ~Menu (void); //... }; Menu::Menu (int n, Rect &bounds)  :   OptionList (n),  Window (bounds) {  /* ...  */  } class  OptionList  { public: OptionList (int n); ~OptionList (); //... }; OptionList Window Menu
Sự mơ hồ trong đa thừa kế Chương  9 class  OptionList  { public: // …… void  Highlight  (int part);  }; class  Window  { public: // …… void  Highlight  (int part);  }; class  Menu   :  public  OptionList ,  public  Window   { ……. }; void  main () {  Menu  m1(….); m1.Highlight(10); … . } Gọi hàm của lớp nào ? void  main () {  Menu  m1(….); m1. OptionList :: Highlight(10); m1. Window :: Highlight(20); … . } Chỉ rõ hàm của lớp nào Hàm cùng tên xử lý
Chuyển kiểu ,[object Object],[object Object],[object Object],Chương  9 ,[object Object],[object Object],Menu  m(n, bounds); Window  win = m; Window  &wRef = m; Window  *wPtr = &menu; class  Menu  : public OptionList, public Window { public: //... Menu (Window&); }; Nếu muốn thực hiện phải tự định nghĩa phép ép kiểu Window  data members OptionList data members Window data members Menu data members win m
Hàm ảo ,[object Object],[object Object],[object Object],[object Object],Chương  9 class  ContactDir  { //... public: int Lookup (const char *name); //... }; class  SortedDir  : public  ContactDir  { public: SortedDir(const int max) : ContactDir(max) {} int Lookup(const char *name); };   void  main () { ContactDir  c1(10);  SortedDir  *p; p = &c1; cout<<p->Lookup(“ABC”); … . } Gọi hàm nào ?
Hàm ảo (tt) ,[object Object],[object Object],[object Object],[object Object],[object Object],Chương  9 class  ContactDir  { //... public: virtual int Lookup (const char *name); }; class  SortedDir  : public  ContactDir  { //…. public: int Lookup(const char *name); };   void  main () { ContactDir  c1(10);  SortedDir  *p1; p1 = &c1; cout<<p->Lookup(“ABC”); SortedDir  c2(20); ContactDir  *p2; p2 = &c2; cout<<p->Lookup(“ABC”); } Gọi hàm của lớp nào ? Kết quả trên  màn hình  là gì?
Lớp cơ sở ảo Chương  9 class  OptionList   :  public Widget, List  { /*...*/ }; class  Window   :  public Widget, Port  { /*...*/ }; class  Menu   :  public OptionList,  public Window { /*...*/ }; ,[object Object],Đối tượng Menu
Lớp cơ sở ảo (tt) ,[object Object],Chương  9 class  OptionList   :   virtual  public Widget,  public List  { /*...*/ }; class  Window   :   virtual  public Widget,  public Port  { /*...*/ }; class  Menu   :  public OptionList,  public Window { /*...*/ }; Menu::Menu (int n, Rect &bounds) : Widget (bounds),  OptionList (n),   Window (bounds) { //... } Chỉ có 1  đối tượng Widget
Các toán tử được tái định nghĩa ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Chương  9
BỔ SUNG MỘT SỐ VẤN ĐỀ KHÁC CẦN TỰ TÌM HIỂU THÊM
Stream ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Bổ sung
Template ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Bổ sung
Exception ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Bổ sung
Container ,[object Object],[object Object],[object Object],[object Object],[object Object],Bổ sung
CÂU HỎI? Kết thúc chương trình

More Related Content

What's hot

Bài 6 - Interface - Nền tảng lập trình ứng dụng với C#
Bài 6 - Interface - Nền tảng lập trình ứng dụng với C#Bài 6 - Interface - Nền tảng lập trình ứng dụng với C#
Bài 6 - Interface - Nền tảng lập trình ứng dụng với C#
MasterCode.vn
 
Pplthdt c00 gioi_thieumonhoc_v13.09a
Pplthdt c00 gioi_thieumonhoc_v13.09aPplthdt c00 gioi_thieumonhoc_v13.09a
Pplthdt c00 gioi_thieumonhoc_v13.09aPix Nhox
 
Một số vấn đề thường gặp trong lập trình - Đăng Bình Phương (ĐH KHTN)
Một số vấn đề thường gặp trong lập trình - Đăng Bình Phương (ĐH KHTN)Một số vấn đề thường gặp trong lập trình - Đăng Bình Phương (ĐH KHTN)
Một số vấn đề thường gặp trong lập trình - Đăng Bình Phương (ĐH KHTN)Thanh Minh Hoang
 
Những điểm mới trong c# 3.0
Những điểm mới trong c# 3.0Những điểm mới trong c# 3.0
Những điểm mới trong c# 3.0Trần Thiên Đại
 
Bai tap lap trinh c
Bai tap lap trinh  cBai tap lap trinh  c
Bai tap lap trinh ctiểu minh
 
Bài giảng ngôn ngữ lập trình C cơ bản trường đại học công nghiệp thực phẩm TP...
Bài giảng ngôn ngữ lập trình C cơ bản trường đại học công nghiệp thực phẩm TP...Bài giảng ngôn ngữ lập trình C cơ bản trường đại học công nghiệp thực phẩm TP...
Bài giảng ngôn ngữ lập trình C cơ bản trường đại học công nghiệp thực phẩm TP...
Thanh Giảng Lê
 
Giáo trình c++ full tiếng việt
Giáo trình c++ full tiếng việtGiáo trình c++ full tiếng việt
Giáo trình c++ full tiếng việt
Môi Trường Việt
 
Jniについて
JniについてJniについて
Jniについて
Chu Chu
 
Bài giảng Lập trình cơ bản - truongkinhtethucpham.com
Bài giảng Lập trình cơ bản - truongkinhtethucpham.comBài giảng Lập trình cơ bản - truongkinhtethucpham.com
Bài giảng Lập trình cơ bản - truongkinhtethucpham.com
mai_non
 
Pplthdt c01 phong_cachlaptrinh_v13.09a
Pplthdt c01 phong_cachlaptrinh_v13.09aPplthdt c01 phong_cachlaptrinh_v13.09a
Pplthdt c01 phong_cachlaptrinh_v13.09aPix Nhox
 
Lập trình C# 2008 cơ bản_Nhất Nghệ
Lập trình C# 2008 cơ bản_Nhất NghệLập trình C# 2008 cơ bản_Nhất Nghệ
Lập trình C# 2008 cơ bản_Nhất NghệTrần Thiên Đại
 
Các cấu trúc lệnh trong C
Các cấu trúc lệnh trong CCác cấu trúc lệnh trong C
Các cấu trúc lệnh trong C
pnanhvn
 
Bài giảng ngôn ngữ lập trình c c++ phạm hồng thái[bookbooming.com]
Bài giảng ngôn ngữ lập trình c c++   phạm hồng thái[bookbooming.com]Bài giảng ngôn ngữ lập trình c c++   phạm hồng thái[bookbooming.com]
Bài giảng ngôn ngữ lập trình c c++ phạm hồng thái[bookbooming.com]bookbooming1
 

What's hot (19)

Bài 6 - Interface - Nền tảng lập trình ứng dụng với C#
Bài 6 - Interface - Nền tảng lập trình ứng dụng với C#Bài 6 - Interface - Nền tảng lập trình ứng dụng với C#
Bài 6 - Interface - Nền tảng lập trình ứng dụng với C#
 
Pplthdt c00 gioi_thieumonhoc_v13.09a
Pplthdt c00 gioi_thieumonhoc_v13.09aPplthdt c00 gioi_thieumonhoc_v13.09a
Pplthdt c00 gioi_thieumonhoc_v13.09a
 
Chuong 4
Chuong 4Chuong 4
Chuong 4
 
Chuong 6
Chuong 6Chuong 6
Chuong 6
 
Một số vấn đề thường gặp trong lập trình - Đăng Bình Phương (ĐH KHTN)
Một số vấn đề thường gặp trong lập trình - Đăng Bình Phương (ĐH KHTN)Một số vấn đề thường gặp trong lập trình - Đăng Bình Phương (ĐH KHTN)
Một số vấn đề thường gặp trong lập trình - Đăng Bình Phương (ĐH KHTN)
 
Những điểm mới trong c# 3.0
Những điểm mới trong c# 3.0Những điểm mới trong c# 3.0
Những điểm mới trong c# 3.0
 
Bai tap lap trinh c
Bai tap lap trinh  cBai tap lap trinh  c
Bai tap lap trinh c
 
Bài giảng ngôn ngữ lập trình C cơ bản trường đại học công nghiệp thực phẩm TP...
Bài giảng ngôn ngữ lập trình C cơ bản trường đại học công nghiệp thực phẩm TP...Bài giảng ngôn ngữ lập trình C cơ bản trường đại học công nghiệp thực phẩm TP...
Bài giảng ngôn ngữ lập trình C cơ bản trường đại học công nghiệp thực phẩm TP...
 
Giáo trình c++ full tiếng việt
Giáo trình c++ full tiếng việtGiáo trình c++ full tiếng việt
Giáo trình c++ full tiếng việt
 
Th.nhapmon lt
Th.nhapmon ltTh.nhapmon lt
Th.nhapmon lt
 
Jniについて
JniについてJniについて
Jniについて
 
Bài giảng Lập trình cơ bản - truongkinhtethucpham.com
Bài giảng Lập trình cơ bản - truongkinhtethucpham.comBài giảng Lập trình cơ bản - truongkinhtethucpham.com
Bài giảng Lập trình cơ bản - truongkinhtethucpham.com
 
Pplthdt c01 phong_cachlaptrinh_v13.09a
Pplthdt c01 phong_cachlaptrinh_v13.09aPplthdt c01 phong_cachlaptrinh_v13.09a
Pplthdt c01 phong_cachlaptrinh_v13.09a
 
Lập trình C# 2008 cơ bản_Nhất Nghệ
Lập trình C# 2008 cơ bản_Nhất NghệLập trình C# 2008 cơ bản_Nhất Nghệ
Lập trình C# 2008 cơ bản_Nhất Nghệ
 
Chuong8 (2)
Chuong8 (2)Chuong8 (2)
Chuong8 (2)
 
Bai tap thuc hanh
Bai tap thuc hanhBai tap thuc hanh
Bai tap thuc hanh
 
Các cấu trúc lệnh trong C
Các cấu trúc lệnh trong CCác cấu trúc lệnh trong C
Các cấu trúc lệnh trong C
 
Bài giảng ngôn ngữ lập trình c c++ phạm hồng thái[bookbooming.com]
Bài giảng ngôn ngữ lập trình c c++   phạm hồng thái[bookbooming.com]Bài giảng ngôn ngữ lập trình c c++   phạm hồng thái[bookbooming.com]
Bài giảng ngôn ngữ lập trình c c++ phạm hồng thái[bookbooming.com]
 
C# coban
C# cobanC# coban
C# coban
 

Viewers also liked

T d que_lap_trinh_huong_doi_tuong
T d que_lap_trinh_huong_doi_tuongT d que_lap_trinh_huong_doi_tuong
T d que_lap_trinh_huong_doi_tuong
toiseden91
 
Lap trinh huong_doi_tuong_cpp_dhct_lesson03
Lap trinh huong_doi_tuong_cpp_dhct_lesson03Lap trinh huong_doi_tuong_cpp_dhct_lesson03
Lap trinh huong_doi_tuong_cpp_dhct_lesson03xcode_esvn
 
Lap trinh huong_doi_tuong_cpp_dhct_lesson06
Lap trinh huong_doi_tuong_cpp_dhct_lesson06Lap trinh huong_doi_tuong_cpp_dhct_lesson06
Lap trinh huong_doi_tuong_cpp_dhct_lesson06xcode_esvn
 
Lap trinh huong_doi_tuong_cpp_dhct_lesson08
Lap trinh huong_doi_tuong_cpp_dhct_lesson08Lap trinh huong_doi_tuong_cpp_dhct_lesson08
Lap trinh huong_doi_tuong_cpp_dhct_lesson08xcode_esvn
 
Lap trinh huong_doi_tuong_cpp_dhct_lesson05
Lap trinh huong_doi_tuong_cpp_dhct_lesson05Lap trinh huong_doi_tuong_cpp_dhct_lesson05
Lap trinh huong_doi_tuong_cpp_dhct_lesson05xcode_esvn
 
Lap trinh huong_doi_tuong_cpp_dhct_lesson02
Lap trinh huong_doi_tuong_cpp_dhct_lesson02Lap trinh huong_doi_tuong_cpp_dhct_lesson02
Lap trinh huong_doi_tuong_cpp_dhct_lesson02xcode_esvn
 
Lap trinh huong_doi_tuong_cpp_dhct_lesson04
Lap trinh huong_doi_tuong_cpp_dhct_lesson04Lap trinh huong_doi_tuong_cpp_dhct_lesson04
Lap trinh huong_doi_tuong_cpp_dhct_lesson04xcode_esvn
 
Lap trinh huong_doi_tuong_cpp_dhct_lesson07
Lap trinh huong_doi_tuong_cpp_dhct_lesson07Lap trinh huong_doi_tuong_cpp_dhct_lesson07
Lap trinh huong_doi_tuong_cpp_dhct_lesson07xcode_esvn
 
Lap trinh huong_doi_tuong_cpp_dhct_lesson01
Lap trinh huong_doi_tuong_cpp_dhct_lesson01Lap trinh huong_doi_tuong_cpp_dhct_lesson01
Lap trinh huong_doi_tuong_cpp_dhct_lesson01xcode_esvn
 
Gtrinh oop
Gtrinh oopGtrinh oop
Gtrinh oop
Ku Anh
 
Lập trình c++ có lời giải 2
Lập trình c++ có lời giải 2Lập trình c++ có lời giải 2
Lập trình c++ có lời giải 2Minh Ngoc Tran
 
Pplthdt c01 mot_sovandetronglaptrinh_v13.09a
Pplthdt c01 mot_sovandetronglaptrinh_v13.09aPplthdt c01 mot_sovandetronglaptrinh_v13.09a
Pplthdt c01 mot_sovandetronglaptrinh_v13.09aPix Nhox
 
Lap trinh c++ có lời giải 1
Lap trinh c++ có lời giải 1Lap trinh c++ có lời giải 1
Lap trinh c++ có lời giải 1Minh Ngoc Tran
 
Lap trinh c++ có lời giải 3
Lap trinh c++ có lời giải 3Lap trinh c++ có lời giải 3
Lap trinh c++ có lời giải 3Minh Ngoc Tran
 
Bài tập mẫu C và C++ có giải
Bài tập mẫu C và C++ có giảiBài tập mẫu C và C++ có giải
Bài tập mẫu C và C++ có giải
Trung Thanh Nguyen
 

Viewers also liked (15)

T d que_lap_trinh_huong_doi_tuong
T d que_lap_trinh_huong_doi_tuongT d que_lap_trinh_huong_doi_tuong
T d que_lap_trinh_huong_doi_tuong
 
Lap trinh huong_doi_tuong_cpp_dhct_lesson03
Lap trinh huong_doi_tuong_cpp_dhct_lesson03Lap trinh huong_doi_tuong_cpp_dhct_lesson03
Lap trinh huong_doi_tuong_cpp_dhct_lesson03
 
Lap trinh huong_doi_tuong_cpp_dhct_lesson06
Lap trinh huong_doi_tuong_cpp_dhct_lesson06Lap trinh huong_doi_tuong_cpp_dhct_lesson06
Lap trinh huong_doi_tuong_cpp_dhct_lesson06
 
Lap trinh huong_doi_tuong_cpp_dhct_lesson08
Lap trinh huong_doi_tuong_cpp_dhct_lesson08Lap trinh huong_doi_tuong_cpp_dhct_lesson08
Lap trinh huong_doi_tuong_cpp_dhct_lesson08
 
Lap trinh huong_doi_tuong_cpp_dhct_lesson05
Lap trinh huong_doi_tuong_cpp_dhct_lesson05Lap trinh huong_doi_tuong_cpp_dhct_lesson05
Lap trinh huong_doi_tuong_cpp_dhct_lesson05
 
Lap trinh huong_doi_tuong_cpp_dhct_lesson02
Lap trinh huong_doi_tuong_cpp_dhct_lesson02Lap trinh huong_doi_tuong_cpp_dhct_lesson02
Lap trinh huong_doi_tuong_cpp_dhct_lesson02
 
Lap trinh huong_doi_tuong_cpp_dhct_lesson04
Lap trinh huong_doi_tuong_cpp_dhct_lesson04Lap trinh huong_doi_tuong_cpp_dhct_lesson04
Lap trinh huong_doi_tuong_cpp_dhct_lesson04
 
Lap trinh huong_doi_tuong_cpp_dhct_lesson07
Lap trinh huong_doi_tuong_cpp_dhct_lesson07Lap trinh huong_doi_tuong_cpp_dhct_lesson07
Lap trinh huong_doi_tuong_cpp_dhct_lesson07
 
Lap trinh huong_doi_tuong_cpp_dhct_lesson01
Lap trinh huong_doi_tuong_cpp_dhct_lesson01Lap trinh huong_doi_tuong_cpp_dhct_lesson01
Lap trinh huong_doi_tuong_cpp_dhct_lesson01
 
Gtrinh oop
Gtrinh oopGtrinh oop
Gtrinh oop
 
Lập trình c++ có lời giải 2
Lập trình c++ có lời giải 2Lập trình c++ có lời giải 2
Lập trình c++ có lời giải 2
 
Pplthdt c01 mot_sovandetronglaptrinh_v13.09a
Pplthdt c01 mot_sovandetronglaptrinh_v13.09aPplthdt c01 mot_sovandetronglaptrinh_v13.09a
Pplthdt c01 mot_sovandetronglaptrinh_v13.09a
 
Lap trinh c++ có lời giải 1
Lap trinh c++ có lời giải 1Lap trinh c++ có lời giải 1
Lap trinh c++ có lời giải 1
 
Lap trinh c++ có lời giải 3
Lap trinh c++ có lời giải 3Lap trinh c++ có lời giải 3
Lap trinh c++ có lời giải 3
 
Bài tập mẫu C và C++ có giải
Bài tập mẫu C và C++ có giảiBài tập mẫu C và C++ có giải
Bài tập mẫu C và C++ có giải
 

Similar to Lap trinh huong_doi_tuong_cpp_dhct_lesson09

Bai06 mot sokythuattrongkethua
Bai06 mot sokythuattrongkethuaBai06 mot sokythuattrongkethua
Bai06 mot sokythuattrongkethua
Nhuận Lê Văn
 
C9 templates
C9 templatesC9 templates
C9 templates
Tiến Quang Phan
 
Bài 2: Lập trình hướng đối tượng & Collection - Lập trình winform - Giáo trìn...
Bài 2: Lập trình hướng đối tượng & Collection - Lập trình winform - Giáo trìn...Bài 2: Lập trình hướng đối tượng & Collection - Lập trình winform - Giáo trìn...
Bài 2: Lập trình hướng đối tượng & Collection - Lập trình winform - Giáo trìn...
MasterCode.vn
 
Chuong9 lop vadoituong
Chuong9 lop vadoituongChuong9 lop vadoituong
Chuong9 lop vadoituong
Minh Ngoc Tran
 
Cq lt hdt-th2011-02-tuan04
Cq lt hdt-th2011-02-tuan04Cq lt hdt-th2011-02-tuan04
Cq lt hdt-th2011-02-tuan04. .
 
Bai05 ket tapvakethua
Bai05 ket tapvakethuaBai05 ket tapvakethua
Bai05 ket tapvakethua
Nhuận Lê Văn
 
Pdfc fast food-mastercode.vn
Pdfc fast food-mastercode.vnPdfc fast food-mastercode.vn
Pdfc fast food-mastercode.vn
MasterCode.vn
 
10. C - Function And Operator Overload
10. C   - Function And Operator Overload10. C   - Function And Operator Overload
10. C - Function And Operator Overload
Darian Pruitt
 
Bai06interface 130622091935-phpapp02
Bai06interface 130622091935-phpapp02Bai06interface 130622091935-phpapp02
Bai06interface 130622091935-phpapp02
Hoàng Hà
 
Bai06interface 130622091935-phpapp02
Bai06interface 130622091935-phpapp02Bai06interface 130622091935-phpapp02
Bai06interface 130622091935-phpapp02Hoàng Hà
 
Dotnet
DotnetDotnet
Dotnet
daicathu
 
Oop 8
Oop 8Oop 8

Similar to Lap trinh huong_doi_tuong_cpp_dhct_lesson09 (20)

Chuong5 (2)
Chuong5 (2)Chuong5 (2)
Chuong5 (2)
 
Bai06 mot sokythuattrongkethua
Bai06 mot sokythuattrongkethuaBai06 mot sokythuattrongkethua
Bai06 mot sokythuattrongkethua
 
Chuong 3
Chuong 3Chuong 3
Chuong 3
 
C9 templates
C9 templatesC9 templates
C9 templates
 
C9 templates
C9 templatesC9 templates
C9 templates
 
Bài 2: Lập trình hướng đối tượng & Collection - Lập trình winform - Giáo trìn...
Bài 2: Lập trình hướng đối tượng & Collection - Lập trình winform - Giáo trìn...Bài 2: Lập trình hướng đối tượng & Collection - Lập trình winform - Giáo trìn...
Bài 2: Lập trình hướng đối tượng & Collection - Lập trình winform - Giáo trìn...
 
Lesson07
Lesson07Lesson07
Lesson07
 
Chuong9 lop vadoituong
Chuong9 lop vadoituongChuong9 lop vadoituong
Chuong9 lop vadoituong
 
Cq lt hdt-th2011-02-tuan04
Cq lt hdt-th2011-02-tuan04Cq lt hdt-th2011-02-tuan04
Cq lt hdt-th2011-02-tuan04
 
Chuong6 (2)
Chuong6 (2)Chuong6 (2)
Chuong6 (2)
 
Bai05 ket tapvakethua
Bai05 ket tapvakethuaBai05 ket tapvakethua
Bai05 ket tapvakethua
 
Pdfc fast food-mastercode.vn
Pdfc fast food-mastercode.vnPdfc fast food-mastercode.vn
Pdfc fast food-mastercode.vn
 
Giáo trình c#
Giáo trình c#Giáo trình c#
Giáo trình c#
 
10. C - Function And Operator Overload
10. C   - Function And Operator Overload10. C   - Function And Operator Overload
10. C - Function And Operator Overload
 
Bai06interface 130622091935-phpapp02
Bai06interface 130622091935-phpapp02Bai06interface 130622091935-phpapp02
Bai06interface 130622091935-phpapp02
 
Bai06interface 130622091935-phpapp02
Bai06interface 130622091935-phpapp02Bai06interface 130622091935-phpapp02
Bai06interface 130622091935-phpapp02
 
Chuong 09 thua ke
Chuong 09 thua keChuong 09 thua ke
Chuong 09 thua ke
 
Ctdl lab01
Ctdl lab01Ctdl lab01
Ctdl lab01
 
Dotnet
DotnetDotnet
Dotnet
 
Oop 8
Oop 8Oop 8
Oop 8
 

Recently uploaded

30 - ĐỀ THI HSG - HÓA HỌC 9 - NĂM HỌC 2021 - 2022.pdf
30 - ĐỀ THI HSG - HÓA HỌC 9 - NĂM HỌC 2021 - 2022.pdf30 - ĐỀ THI HSG - HÓA HỌC 9 - NĂM HỌC 2021 - 2022.pdf
30 - ĐỀ THI HSG - HÓA HỌC 9 - NĂM HỌC 2021 - 2022.pdf
ngocnguyensp1
 
Ảnh hưởng của nhân sinh quan Phật giáo đến đời sống tinh thần Việt Nam hiện nay
Ảnh hưởng của nhân sinh quan Phật giáo đến đời sống tinh thần Việt Nam hiện nayẢnh hưởng của nhân sinh quan Phật giáo đến đời sống tinh thần Việt Nam hiện nay
Ảnh hưởng của nhân sinh quan Phật giáo đến đời sống tinh thần Việt Nam hiện nay
chinhkt50
 
CÁC BIỆN PHÁP KỸ THUẬT AN TOÀN KHI XÃY RA HỎA HOẠN TRONG.pptx
CÁC BIỆN PHÁP KỸ THUẬT AN TOÀN KHI XÃY RA HỎA HOẠN TRONG.pptxCÁC BIỆN PHÁP KỸ THUẬT AN TOÀN KHI XÃY RA HỎA HOẠN TRONG.pptx
CÁC BIỆN PHÁP KỸ THUẬT AN TOÀN KHI XÃY RA HỎA HOẠN TRONG.pptx
CNGTRC3
 
BAI TAP ON HE LOP 2 LEN 3 MON TIENG VIET.pdf
BAI TAP ON HE LOP 2 LEN 3 MON TIENG VIET.pdfBAI TAP ON HE LOP 2 LEN 3 MON TIENG VIET.pdf
BAI TAP ON HE LOP 2 LEN 3 MON TIENG VIET.pdf
phamthuhoai20102005
 
CHUYÊN ĐỀ BỒI DƯỠNG HỌC SINH GIỎI KHOA HỌC TỰ NHIÊN 9 CHƯƠNG TRÌNH MỚI - PHẦN...
CHUYÊN ĐỀ BỒI DƯỠNG HỌC SINH GIỎI KHOA HỌC TỰ NHIÊN 9 CHƯƠNG TRÌNH MỚI - PHẦN...CHUYÊN ĐỀ BỒI DƯỠNG HỌC SINH GIỎI KHOA HỌC TỰ NHIÊN 9 CHƯƠNG TRÌNH MỚI - PHẦN...
CHUYÊN ĐỀ BỒI DƯỠNG HỌC SINH GIỎI KHOA HỌC TỰ NHIÊN 9 CHƯƠNG TRÌNH MỚI - PHẦN...
Nguyen Thanh Tu Collection
 
GIAO TRINH TRIET HOC MAC - LENIN (Quoc gia).pdf
GIAO TRINH TRIET HOC MAC - LENIN (Quoc gia).pdfGIAO TRINH TRIET HOC MAC - LENIN (Quoc gia).pdf
GIAO TRINH TRIET HOC MAC - LENIN (Quoc gia).pdf
LngHu10
 
Nghiên cứu cơ chế và động học phản ứng giữa hợp chất Aniline (C6H5NH2) với gố...
Nghiên cứu cơ chế và động học phản ứng giữa hợp chất Aniline (C6H5NH2) với gố...Nghiên cứu cơ chế và động học phản ứng giữa hợp chất Aniline (C6H5NH2) với gố...
Nghiên cứu cơ chế và động học phản ứng giữa hợp chất Aniline (C6H5NH2) với gố...
Nguyen Thanh Tu Collection
 
98 BÀI LUYỆN NGHE TUYỂN SINH VÀO LỚP 10 TIẾNG ANH DẠNG TRẮC NGHIỆM 4 CÂU TRẢ ...
98 BÀI LUYỆN NGHE TUYỂN SINH VÀO LỚP 10 TIẾNG ANH DẠNG TRẮC NGHIỆM 4 CÂU TRẢ ...98 BÀI LUYỆN NGHE TUYỂN SINH VÀO LỚP 10 TIẾNG ANH DẠNG TRẮC NGHIỆM 4 CÂU TRẢ ...
98 BÀI LUYỆN NGHE TUYỂN SINH VÀO LỚP 10 TIẾNG ANH DẠNG TRẮC NGHIỆM 4 CÂU TRẢ ...
Nguyen Thanh Tu Collection
 
DS thi KTHP HK2 (dot 3) nam hoc 2023-2024.pdf
DS thi KTHP HK2 (dot 3) nam hoc 2023-2024.pdfDS thi KTHP HK2 (dot 3) nam hoc 2023-2024.pdf
DS thi KTHP HK2 (dot 3) nam hoc 2023-2024.pdf
thanhluan21
 
GIÁO TRÌNH 2-TÀI LIỆU SỬA CHỮA BOARD MONO TỦ LẠNH MÁY GIẶT ĐIỀU HÒA.pdf
GIÁO TRÌNH 2-TÀI LIỆU SỬA CHỮA BOARD MONO TỦ LẠNH MÁY GIẶT ĐIỀU HÒA.pdfGIÁO TRÌNH 2-TÀI LIỆU SỬA CHỮA BOARD MONO TỦ LẠNH MÁY GIẶT ĐIỀU HÒA.pdf
GIÁO TRÌNH 2-TÀI LIỆU SỬA CHỮA BOARD MONO TỦ LẠNH MÁY GIẶT ĐIỀU HÒA.pdf
Điện Lạnh Bách Khoa Hà Nội
 
Khoá luận tốt nghiệp ngành Truyền thông đa phương tiện Xây dựng kế hoạch truy...
Khoá luận tốt nghiệp ngành Truyền thông đa phương tiện Xây dựng kế hoạch truy...Khoá luận tốt nghiệp ngành Truyền thông đa phương tiện Xây dựng kế hoạch truy...
Khoá luận tốt nghiệp ngành Truyền thông đa phương tiện Xây dựng kế hoạch truy...
https://www.facebook.com/garmentspace
 

Recently uploaded (11)

30 - ĐỀ THI HSG - HÓA HỌC 9 - NĂM HỌC 2021 - 2022.pdf
30 - ĐỀ THI HSG - HÓA HỌC 9 - NĂM HỌC 2021 - 2022.pdf30 - ĐỀ THI HSG - HÓA HỌC 9 - NĂM HỌC 2021 - 2022.pdf
30 - ĐỀ THI HSG - HÓA HỌC 9 - NĂM HỌC 2021 - 2022.pdf
 
Ảnh hưởng của nhân sinh quan Phật giáo đến đời sống tinh thần Việt Nam hiện nay
Ảnh hưởng của nhân sinh quan Phật giáo đến đời sống tinh thần Việt Nam hiện nayẢnh hưởng của nhân sinh quan Phật giáo đến đời sống tinh thần Việt Nam hiện nay
Ảnh hưởng của nhân sinh quan Phật giáo đến đời sống tinh thần Việt Nam hiện nay
 
CÁC BIỆN PHÁP KỸ THUẬT AN TOÀN KHI XÃY RA HỎA HOẠN TRONG.pptx
CÁC BIỆN PHÁP KỸ THUẬT AN TOÀN KHI XÃY RA HỎA HOẠN TRONG.pptxCÁC BIỆN PHÁP KỸ THUẬT AN TOÀN KHI XÃY RA HỎA HOẠN TRONG.pptx
CÁC BIỆN PHÁP KỸ THUẬT AN TOÀN KHI XÃY RA HỎA HOẠN TRONG.pptx
 
BAI TAP ON HE LOP 2 LEN 3 MON TIENG VIET.pdf
BAI TAP ON HE LOP 2 LEN 3 MON TIENG VIET.pdfBAI TAP ON HE LOP 2 LEN 3 MON TIENG VIET.pdf
BAI TAP ON HE LOP 2 LEN 3 MON TIENG VIET.pdf
 
CHUYÊN ĐỀ BỒI DƯỠNG HỌC SINH GIỎI KHOA HỌC TỰ NHIÊN 9 CHƯƠNG TRÌNH MỚI - PHẦN...
CHUYÊN ĐỀ BỒI DƯỠNG HỌC SINH GIỎI KHOA HỌC TỰ NHIÊN 9 CHƯƠNG TRÌNH MỚI - PHẦN...CHUYÊN ĐỀ BỒI DƯỠNG HỌC SINH GIỎI KHOA HỌC TỰ NHIÊN 9 CHƯƠNG TRÌNH MỚI - PHẦN...
CHUYÊN ĐỀ BỒI DƯỠNG HỌC SINH GIỎI KHOA HỌC TỰ NHIÊN 9 CHƯƠNG TRÌNH MỚI - PHẦN...
 
GIAO TRINH TRIET HOC MAC - LENIN (Quoc gia).pdf
GIAO TRINH TRIET HOC MAC - LENIN (Quoc gia).pdfGIAO TRINH TRIET HOC MAC - LENIN (Quoc gia).pdf
GIAO TRINH TRIET HOC MAC - LENIN (Quoc gia).pdf
 
Nghiên cứu cơ chế và động học phản ứng giữa hợp chất Aniline (C6H5NH2) với gố...
Nghiên cứu cơ chế và động học phản ứng giữa hợp chất Aniline (C6H5NH2) với gố...Nghiên cứu cơ chế và động học phản ứng giữa hợp chất Aniline (C6H5NH2) với gố...
Nghiên cứu cơ chế và động học phản ứng giữa hợp chất Aniline (C6H5NH2) với gố...
 
98 BÀI LUYỆN NGHE TUYỂN SINH VÀO LỚP 10 TIẾNG ANH DẠNG TRẮC NGHIỆM 4 CÂU TRẢ ...
98 BÀI LUYỆN NGHE TUYỂN SINH VÀO LỚP 10 TIẾNG ANH DẠNG TRẮC NGHIỆM 4 CÂU TRẢ ...98 BÀI LUYỆN NGHE TUYỂN SINH VÀO LỚP 10 TIẾNG ANH DẠNG TRẮC NGHIỆM 4 CÂU TRẢ ...
98 BÀI LUYỆN NGHE TUYỂN SINH VÀO LỚP 10 TIẾNG ANH DẠNG TRẮC NGHIỆM 4 CÂU TRẢ ...
 
DS thi KTHP HK2 (dot 3) nam hoc 2023-2024.pdf
DS thi KTHP HK2 (dot 3) nam hoc 2023-2024.pdfDS thi KTHP HK2 (dot 3) nam hoc 2023-2024.pdf
DS thi KTHP HK2 (dot 3) nam hoc 2023-2024.pdf
 
GIÁO TRÌNH 2-TÀI LIỆU SỬA CHỮA BOARD MONO TỦ LẠNH MÁY GIẶT ĐIỀU HÒA.pdf
GIÁO TRÌNH 2-TÀI LIỆU SỬA CHỮA BOARD MONO TỦ LẠNH MÁY GIẶT ĐIỀU HÒA.pdfGIÁO TRÌNH 2-TÀI LIỆU SỬA CHỮA BOARD MONO TỦ LẠNH MÁY GIẶT ĐIỀU HÒA.pdf
GIÁO TRÌNH 2-TÀI LIỆU SỬA CHỮA BOARD MONO TỦ LẠNH MÁY GIẶT ĐIỀU HÒA.pdf
 
Khoá luận tốt nghiệp ngành Truyền thông đa phương tiện Xây dựng kế hoạch truy...
Khoá luận tốt nghiệp ngành Truyền thông đa phương tiện Xây dựng kế hoạch truy...Khoá luận tốt nghiệp ngành Truyền thông đa phương tiện Xây dựng kế hoạch truy...
Khoá luận tốt nghiệp ngành Truyền thông đa phương tiện Xây dựng kế hoạch truy...
 

Lap trinh huong_doi_tuong_cpp_dhct_lesson09

  • 1. THỪA KẾ Bộ môn Hệ Thống Máy Tính và Truyền Thông Khoa Công Nghệ Thông Tin và Truyền Thông Đại học Cần Thơ CHƯƠNG 9: (INHERITANCE)
  • 2.
  • 3.
  • 4. Ví dụ minh họa Chương 9 #include <iostream.h> #include <string.h> class Contact { private: char *name; // ten doi tac char *address; // dia chi doi tac char *tel; // so dien thoai public: Contact (const char *name, const char *address, const char *tel); ~Contact (); const char* Name () const { return name;} const char* Address () const { return address;} const char* Tel () const { return tel;} friend ostream& operator << ( ostream&, Contact& ); }; class ContactDir { private: int Lookup(const char *name); Contact **contacts; // ds cac doi tac int dirSize; // kich thuoc thu muc hien tai int maxSize; // kich thuoc thu muc toi da public: ContactDir (const int maxSize); ~ContactDir (); void Insert(const Contact&); void Delete(const char *name); Contact* Find (const char *name); friend ostream& operator << (ostream&, ContactDir&); // ………… }; Ký hiệu composition ContactDir Contact n
  • 5. Ví dụ minh họa (tt) Chương 9 class SmartDir : public ContactDir { private: char *recent; // ten duoc tim gan nhat public: SmartDir (const int max) : ContactDir (max) { recent = 0; } Contact* Recent (void); Contact* Find (const char *name); // ……………. }; Contact* SmartDir:: Recent (void) { return recent == 0 ? 0 : ContactDir::Find(recent); } Contact* SmartDir:: Find (const char *name) { Contact *c = ContactDir::Find(name); if (c != 0) recent = (char*) c->Name(); return c; } Ký hiệu Thừa kế ContactDir Contact n SmartDir
  • 6. Ví dụ (tt) - mô tả trong bộ nhớ Chương 9 **contacts dirSize maxSize **contacts dirSize maxSize *recent Contact 1 Contact 2 Contact i … Contact 1 Contact 2 Contact i … ContactDir SmartDir *contacts 1 *contacts 2 *contacts 3 *contacts i *contacts n … … *contacts 1 *contacts 2 *contacts 3 *contacts i *contacts n … …
  • 7.
  • 8. Hàm xây dựng và hàm hủy (tt) Chương 9 class SmartDir : public ContactDir { private: char *recent; // ten duoc tim gan nhat public: SmartDir (const int max) : ContactDir (max) { recent = 0; } SmartDir (const SmartDir& sd): ContactDir (sd) { recent = 0; } ~SmartDir () { delete recent; } // ……………. }; Gọi hàm xây dựng của lớp cha Thu hồi vùng nhớ của con trỏ thành viên của lớp con nếu đã cấp vùng nhớ trong hàm xây dựng.
  • 9.
  • 10. Lớp cơ sở riêng, chung và được bảo vệ Chương 9 class A { private: int x; void Fx (void); public: int y; void Fy (void); protected: int z; void Fz (void); }; class B : A { // Thừa kế dạng private …… . }; class C : private A { // A là lớp cơ sở riêng của B ……… }; class D : public A { // A là lớp cơ sở chung của C ……… }; class E : protected A { // A: lớp cơ sở được bảo vệ ……… . }; protected private protected protected protected private public public _ _ _ private Thừa kế protected Thừa kế private Thừa kế public Lớp cơ sở
  • 11. Đa thừa kế Chương 9 class Window { public: Window (Rect &); ~Window (void); //... }; class Menu : public OptionList , public Window { public: Menu (int n, Rect &bounds); ~Menu (void); //... }; Menu::Menu (int n, Rect &bounds) : OptionList (n), Window (bounds) { /* ... */ } class OptionList { public: OptionList (int n); ~OptionList (); //... }; OptionList Window Menu
  • 12. Sự mơ hồ trong đa thừa kế Chương 9 class OptionList { public: // …… void Highlight (int part); }; class Window { public: // …… void Highlight (int part); }; class Menu : public OptionList , public Window { ……. }; void main () { Menu m1(….); m1.Highlight(10); … . } Gọi hàm của lớp nào ? void main () { Menu m1(….); m1. OptionList :: Highlight(10); m1. Window :: Highlight(20); … . } Chỉ rõ hàm của lớp nào Hàm cùng tên xử lý
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19. BỔ SUNG MỘT SỐ VẤN ĐỀ KHÁC CẦN TỰ TÌM HIỂU THÊM
  • 20.
  • 21.
  • 22.
  • 23.
  • 24. CÂU HỎI? Kết thúc chương trình