编写类A和类B ,其中A是B的父类型 题目给出了一个数组dataArray,和变量len,最开始len=1,dataArray[1]=new A; 当一个A类型数据被删除的时侯,输出"del A\n",并在数组末尾++len的位置加入一个新的B类型 当一个B类型数据被删除的时侯,输出"del B\n",并在数组末尾++len的位置加入一个新的A类型 (不包含"") 接着输入一个数字n,程序将依次删除Data数组中1-n位置的内容 在下方空白处实现类A和B #include<bits/stdc++.h> using namespace std; class A; A *dataArray[1001]; int len=0; //-------------------code here-------------------- //---------------------------------------------------- int main() { dataArray[++len]=new A; int n;cin>>n; for(int i=1;i<=n;i++) delete(dataArray[i]); }
时间: 2023-08-15 22:58:44 浏览: 90
int-array:IntArray类的实现,该类在int数组内部进行操作。 该类应为用户提供方便的方法来插入,删除和读取元素
```cpp
#include<bits/stdc++.h>
using namespace std;
class A {
public:
virtual ~A() {
cout << "del A\n";
}
};
class B : public A {
public:
~B() {
cout << "del B\n";
}
};
A *dataArray[1001];
int len = 0;
int main() {
dataArray[++len] = new A;
int n;
cin >> n;
for (int i = 1; i <= n; i++) {
delete(dataArray[i]);
if (dynamic_cast<A*>(dataArray[i]) != nullptr) { // 如果删除的是A类型的数据
dataArray[++len] = new B; // 在数组末尾加入一个新的B类型
} else { // 如果删除的是B类型的数据
dataArray[++len] = new A; // 在数组末尾加入一个新的A类型
}
}
}
```
以上是根据题目要求实现的类A和类B以及主函数部分的代码。在类A和类B中都添加了析构函数,当对象被删除时会输出相应的提示信息。在主函数中,根据输入的数字n,依次删除数组dataArray中1到n位置的内容,并根据删除的类型在数组末尾加入一个新的对象。
阅读全文