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

CPolygon * ppoly2 = &trgl;

ppoly1->set_values (4,5);

ppoly2->set_values (4,5);

cout << ppoly1->area() << endl;

cout << ppoly2->area() << endl;

return 0;

}

20

10

Nếu bạn xem lại chương trình bạn sẽ thấy rằng chúng ta tham chiếu đến các đối
tượng thuộc các lớp khác nhau nhưng chỉ sử dụng một kiểu con trỏ duy nhất.
Điều này là cực kì hữu dụng, bây giờ chúng ta có thể tạo một hàm thành viên
của

CPolygon

có khả năng in ra màn hình kết quả của hàm

area()

mà không

phụ thuộc vào lớp được thừa kế là lớp nào.

// ejemplo miembros virtuales

#include <iostream.h>

class CPolygon {

protected:

int width, height;

public:

void set_values (int a, int b)

{ width=a; height=b; }

virtual int area (void) =0;

void printarea (void)

{ cout << this->area() << endl; }

};

class CRectangle: public CPolygon {