编写类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 18:57:31 浏览: 292
JavaScript中对循环语句的优化技巧深入探讨
```cpp
#include <iostream>
using namespace std;
class A {
public:
virtual ~A() {
cout << "del A" << endl;
}
};
class B : public A {
public:
~B() {
cout << "del B" << endl;
}
};
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 (dataArray[i]->typeid() == typeid(A*)) {
dataArray[++len] = new B;
} else {
dataArray[++len] = new A;
}
}
return 0;
}
```
注意:在这段代码中,我们通过使用虚析构函数来确保在删除类型为A或B的对象时,正确地调用相应的析构函数。此外,我们使用了 `typeid` 运算符来检查对象的类型,并在删除后根据需要添加新的对象到 `dataArray` 数组中。
阅读全文