最近学习到有关c++虚函数的基本用法,用了一道题来解释虚函数的使用方法,代码入下:
#include<iostream>
using 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;
}