编写一个类Class15_1,声明一个数据成员int value和一个静态数据成员int staticV(初始化为0),让构造函数初始化数据成员value,并让静态数据成员staticV加1,让析构函数把静态数据成员staticV减1。主程序中使用new操作符创建三个堆对象,value值分别为5,80,20。然后显示它们的数据成员和静态数据成员,再依次使用delete操作符析构每个对象,并显示对静态数据成员的影响。
时间: 2023-06-01 16:04:54 浏览: 76
好的,我明白了。这是一个关于C++类的问题,请允许我给您回答。
以下是Class15_1类的定义:
```cpp
class Class15_1 {
public:
Class15_1(int v); // 构造函数
~Class15_1(); // 析构函数
int getValue(); // 返回value成员的值
static int getStaticV(); // 返回staticV的值
private:
int value; // 数据成员
static int staticV; // 静态数据成员
};
```
以下是Class15_1类的实现:
```cpp
#include<iostream>
using namespace std;
class Class15_1 {
public:
Class15_1(int v) {
value = v;
staticV++;
}
~Class15_1() {
staticV--;
}
int getValue() {
return value;
}
static int getStaticV() {
return staticV;
}
private:
int value;
static int staticV;
};
int Class15_1::staticV = 0;
int main() {
Class15_1* obj1 = new Class15_1(5);
Class15_1* obj2 = new Class15_1(80);
Class15_1* obj3 = new Class15_1(20);
cout << "obj1的value为:" << obj1->getValue() << endl;
cout << "obj2的value为:" << obj2->getValue() << endl;
cout << "obj3的value为:" << obj3->getValue() << endl;
cout << "staticV的值为:" << Class15_1::getStaticV() << endl;
delete obj1;
cout << "执行delete obj1后,staticV的值为:" << Class15_1::getStaticV() << endl;
delete obj2;
cout << "执行delete obj2后,staticV的值为:" << Class15_1::getStaticV() << endl;
delete obj3;
cout << "执行delete obj3后,staticV的值为:" << Class15_1::getStaticV() << endl;
return 0;
}
```
希望这个回答能够解决您的问题。如果您有其他问题需要问,可以直接继续提出。