思路:
思路很简单,在抽象类中定义纯虚函数,在派生类中进行初始化和函数重写,注意,我这里的π取的是3。再定义两个test函数,进行输出测试,这是一道简单的动态多态c++的问题。
#include <iostream>
using namespace std;
/*声明一个shape抽象类,在此基础上派生出rectangle和circle类,
二者都有getarea()函数计算对象的面积,getperim()函数计算对象的周长。
填写答案*/
class shape {
public:
virtual int getarea() = 0;
virtual int getperim() = 0;
int length;
int width;
int radius;
};
class rectangle :public shape {
public:
rectangle(int a, int b) {
length = a;
width = b;
}
virtual int getarea() {
return length * width;
}
virtual int getperim() {
return 2 * (length+width);
}
};
class circle :public shape {
public:
circle(int c) {
radius = c;
}
virtual int getarea() {
return 3 * radius * radius;
}
virtual int getperim() {
return 2 * 3 * radius;
}
};
void test01() {
rectangle test01(1, 2);
cout << "矩阵的面积:" << test01.getarea()<< endl;
cout << "矩阵的周长:" << test01.getperim() << endl;
}
void test02() {
circle test02(3);
cout << "圆的面积:" << test02.getarea() << endl;
cout << "圆的周长:" << test02.getperim() << endl;
}
int main() {
test01();
test02();
system("pause");
return 0;
}
运行图: