编写一个类,声明一个数据成员和一个静态数据成员。让构造函数初始化数据成员,并把静态数据成员加1,让构析函数把静态数据成员加1
时间: 2024-02-09 09:12:21 浏览: 28
下面是一个实现上述要求的C++代码:
```
#include <iostream>
class Test {
private:
int data;
static int count;
public:
Test(int d): data(d) { count++; }
~Test() { count++; }
void print() { std::cout << "data = " << data << std::endl; }
static void printCount() { std::cout << "count = " << count << std::endl; }
};
int Test::count = 0;
int main() {
Test t1(1);
Test::printCount();
Test t2(2);
Test::printCount();
Test t3(3);
Test::printCount();
t1.print();
t2.print();
t3.print();
return 0;
}
```
注意,静态数据成员必须在类外进行初始化,即在类定义的外部使用类名加上作用域解析运算符(::)来定义。在构造函数和析构函数中,我们可以直接访问静态数据成员count,并进行自增操作。
在main函数中,我们创建了三个Test对象t1、t2、t3,并分别传入不同的参数。每次创建Test对象时,都会执行构造函数,该构造函数会将count静态数据成员加1。我们可以通过Test::printCount()方法来打印当前的count值。
最后,我们调用t1、t2、t3的print()方法,来打印它们的数据成员值。需要注意的是,print()方法是一个非静态成员函数,因此在调用它时必须先创建Test对象。