[r]
(1)TH A K
Ừ
Ế
TH A K
Ừ
Ế
(INHERITANCE)
(INHERITANCE)
(2)N i dung
ộ
N i dung
ộ
Khái ni m
ệ
L p d n xu t đ n gi n
ớ
ẫ
ấ ơ
ả
Ký hi u th b c
ệ
ứ ậ
Hàm xây d ng hàm h y
ự
ủ
Thành viên l p đ
ớ
ượ
c b o v
ả
ệ
L p c s riêng, chung đ
ớ
ơ ở
ượ
c b o v
ả
ệ
Đa th a k - S m h
ừ
ế
ự ồ
Hàm o - L p c s o
ả
ớ
ơ ả
Chuy n ki u
ể
ể
(3)Khái ni m
ệ
Khái ni m
ệ
K th a t l p có t tr
ế ừ
ớ
ừ ướ
c.
Ích l i:
ợ
có th t n d ng l i
ể ậ
ụ
ạ
Các thu c tính chung
ộ
Các hàm có thao tác t
ươ
ng t
ự
L P CHA
Ớ
L P CHA
Ớ
(Super class)
L P CON
Ớ
L P CON
Ớ
L p c s
ớ
ơ ở
(Base class)
L p d n xu t
ớ
ẫ
ấ
STUDENT
STUDENT
CIT_STUDENT
(4)Ví d minh h a
ụ
ọ
Ví d minh h a
ụ
ọ
#include <iostream.h> #include <string.h> class ContactContact{ 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 ContactDirContactDir { 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&); // …………
ContactDir
ContactDir
nContact
Contact
Ký hi u
ệ
(5)Ví d minh h a (tt)
ụ
ọ
Ví d minh h a (tt)
ụ
ọ
class SmartDirSmartDir : 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 == ? :
ContactDir::Find(recent); }
Contact* SmartDir::Find (const char *name) { Contact *c = ContactDir::Find(name); if (c != 0)
recent = (char*) c->Name(); return c;