GIÁO TRÌNH C++ - Trang 107

Trừu tượng hoá lớp cơ sở

Các lớp trừu trượng là một cái gì đó rất giống với lớp lớp

CPolygon

trong ví dụ

trước của chúng ta. Sự khác biệt duy nhất là trong ví dụ đó chúng ta đã định
nghĩa hàm

area()

cho các đối tượng thuộc lớp

CPolygon

(giống như đối tượng

poly

), trong khi ở trong một lớp trừu tượng cơ sở chúng ta có thể bỏ qua việc

định nghĩa hàm này bằng cách thêm

=0

(bằng không) vào phần khai báo hàm.

Lớp

CPolygon

có thể được định nghĩa như sau:

// abstract class CPoligon

class CPolygon {

protected:

int width, height;

public:

void set_values (int a, int b)

{ width=a; height=b; }

virtual int area (void) =0;

};

Hãy chú ý cách chúng ta thêm

=0

vào

virtual int area (void)

thay vì định

nghĩa đầy đủ cho hàm. Kiểu hàm này có tên là là pure virtual function (hàm ảo
thuần tuý) và tất cả các lớp chứa bất kì một hàm ảo thuần tuý nào đều được coi
là lớp trừu tượng cơ sở.
Sự khác biệt lớn của một lớp trừu tượng cơ sở là không thể tạo được các đối
tượng thuộc lớp. Nhưng chúng ta có thể tạo các con trỏ trỏ đến chúng. Vì vậy
một khai báo như sau:

CPolygon poly;

sẽ là không hợp lệ cho lớp trừu tượng cơ sở được khai báo ở trên. Tuy nhiên
con trỏ:

CPolygon * ppoly1;

CPolygon * ppoly2

Liên Kết Chia Sẽ

** Đây là liên kết chia sẻ bới cộng đồng người dùng, chúng tôi không chịu trách nhiệm gì về nội dung của các thông tin này. Nếu có liên kết nào không phù hợp xin hãy báo cho admin.