静态数据成员的小问题
发布网友
发布时间:2023-07-15 03:41
我来回答
共2个回答
热心网友
时间:2024-12-02 15:06
我说下我的看法,不过程序没调试。。。
静态成员是属于类的,不是属于对象的,也就是说定义类的时候就为静态成员分配了内存,定义对象时候不会再分配。
所以aClass o1,o2,o3;
cout<<o1.gettotal()<<"objects in existence\n";这句输出的应该是3,因为定义了3个对象,所以调用了3次构造函数,total++;执行了3次。
aClass * p;
p = new aClass;之后cout<<o1.gettotal();输出的应该是4,因为又定义了一个对象
delete p;
cout<<o1.gettotal();之后输出的应该是3,因为调用了一次析构函数,total--;执行了一次
整个程序中静态变量total只定义了一次,分配了一次内存
热心网友
时间:2024-12-02 15:07
首先定义了一个私有的静态整型数据成员total
然后定义了一个构造函数aClass
然后定义了一个析构函数aClass
再定义一个方法gettotal
total初始值是0
main函数定义了aclass类的三个对象