//Container* arr1 = new Container[n];
//不允许使用抽象类作为数组,因为抽象类数组里的元素也是属于抽象类
// 又因为抽象类本身不允许构建对象,"Container c;"引号内的代码会报错
// 所以抽象类数组也不可以被建立.
//但是我们可以构建抽象类指针数组,因为抽象类的指针是被允许的
//“Container* c;”引号内的代码可运行
//所以我们可以构建一个指针数组,将抽象类的指针放入数组。
#include <iostream>
using namespace std;
#include <string>
class Container
{
public:
virtual double area() = 0;
};
class Cube :public Container
{
public:
double area()
{
return 6 * a * b;
}
private:
int a, b;
};
class Cylinder :public Container
{
public:
double area()
{
return 3.14 * r * r;
}
private:
int r;
};
void test01() {
int n;
n = 3;
Container** arr = new Container * [n];
//Container* arr1 = new Container[n];
//不允许使用抽象类作为数组,因为抽象类数组里的元素也是属于抽象类
// 又因为抽象类本身不允许构建对象,"Container c;"引号内的代码会报错
// 所以抽象类数组也不可以被建立.
//但是我们可以构建抽象类指针数组,因为抽象类的指针是被允许的
//“Container* c;”引号内的代码可运行
//所以我们可以构建一个指针数组,将抽象类的指针放入数组。
}
int main()
{
test01();
return 0;
}