1Phương pháp lập trình hướng đối tượng.
Đa hình
Đa hình
2Phương pháp lập trình hướng đối tượng.
Nội dung
Nội dung
Hàm ảo.
Hàm ảo.
Hàm thuần ảo.
Hàm thuần ảo.
Hàm hủy ảo.
Hàm hủy ảo.
Bài tập.
Bài tập.
3Phương pháp lập trình hướng đối tượng.
Nội dung
Nội dung
Hàm ảo.
Hàm ảo.
Hàm thuần ảo.
Hàm thuần ảo.
Hàm hủy ảo.
Hàm hủy ảo.
Bài tập.
Bài tập.
4Phương pháp lập trình hướng đối tượng.
Hàm ảo
Hàm ảo
Con trỏ đối tượng trong kế thừa:
Con trỏ đối tượng trong kế thừa:
Truy xuất đối tượng bằng con trỏ => linh động.
Truy xuất đối tượng bằng con trỏ => linh động.
Truy xuất đối tượng kế thừa bằng con trỏ lớp cơ sở.
Truy xuất đối tượng kế thừa bằng con trỏ lớp cơ sở.
Kiểu con trỏ quyết định phương thức được gọi
Kiểu con trỏ quyết định phương thức được gọi
liên kết tĩnh.
liên kết tĩnh.
Đối tượng kế thừa truyền vào hàm nhận tham số kiểu cơ sở.
Đối tượng kế thừa truyền vào hàm nhận tham số kiểu cơ sở.
Đối tượng kế thừa có thể đóng vai trò đối tượng cơ sở.
Đối tượng kế thừa có thể đóng vai trò đối tượng cơ sở.
A obj;
A *p;
p = &obj;
p = new A;
A obj;
A *p;
p = &obj;
p = new A;
// B kế tha A.
B obj;
A *p = &obj;
p->func();
// B kế thừa A.
B obj;
A *p = &obj;
p->func();
// B kế tha A.
void func(A obj) { }
B obj;
func(obj);
// B kế thừa A.
void func(A obj) { }
B obj;
func(obj);
5Phương pháp lập trình hướng đối tượng.
Hàm ảo
Hàm ảo
Animal
+ Talk()
Cat
+ Talk()
Dog
+ Talk()
Ví dụ:
Ví dụ:
class Animal
class Animal
{
{
public:
public:
void talk() { cout << “Don’t talk!”; }
void talk() { cout << “Don’t talk!”; }
};
};
class Cat: public Animal
class Cat: public Animal
{
{
public:
public:
void talk() { cout << “Meo meo!”; }
void talk() { cout << “Meo meo!”; }
};
};
class Dog: public Animal
class Dog: public Animal
{
{
public:
public:
void talk() { cout << “Gau gau!”; }
void talk() { cout << “Gau gau!”; }
};
};