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 {