最近学习到有关c++虚函数的基本用法,用了一道题来解释虚函数的使用方法,代码入下:
#includeusing namespace std; class base{ public: base(double x, double y) { high = x; wide = y; } virtual void area() = 0; protected: double wide; double high; }; class Triangle :public base { public: Triangle(double x, double y) :base(x, y)//子类构造函数 {}; void area() { cout << "三角形面积:" << high*wide/2 << endl; } }; class Circular :public base { public: Circular(double x) :base(x, x) {}; void area() { cout << "圆的面积:" << 3.14 * wide * wide<< endl; } }; class Square :public base { public: Square(double x) :base(x, x) {}; void area() { cout << "正方形面积:" << wide * wide << endl; } }; int main() { base* ptr;//构造一个基类的对象的指针 Circular b(3); ptr = &b;//把对象b的地址赋给指针 ptr->area();//虚函数调用该对象的函数 Square c(2.5); ptr = &c; ptr->area(); Triangle a(2, 3); ptr = &a; ptr->area(); return 0; }



