编写类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 07:54:54 浏览: 42
#include <iostream>
#include <vector>
using namespace std;
class B;
A {
public:
virtual ~A() {
cout << "del A" <<;
dataArray[++len] = new B;
};
class B : public A {
public:
~() {
cout << "del B" << endl dataArray[++len] = new A;
}
int main() {
dataArray[++len] = new A;
int n;
cin >>;
for (int i = 1; i <= n; i++) {
delete dataArray[i];
}
return 0;
}
在上面的代码中,我们定义了类A和类B,其中类A是类B的父类型。在A类的析构函数中,输出"del A"并在dataArray数组的末尾增加一个新的B对象。在B类的析构函数中,输出"del B"并在dataArray数组的末尾增加一个新的A对象。
在主函数中,我们先将一个A对象加入dataArray数组,然后输入一个数字n。接下来,我们按照1到n的顺序删除dataArray数组中的元素。每次删除时,会调用相应对象的析构函数,并根据题目要求输出相应的信息和添加新的对象到数组末尾。
注意:为了使代码能够顺利运行,需要将dataArray数组和len变量定义为全局变量。