2条回答 默认 最新
- 小灸舞 2016-04-01 01:53关注
打印出221
Obj obj1; //会调用构造,所以i++了(变为1了) f(); //调用函数f(),在函数内定义了一个对象,也会调用构造,i++了(变为2了),打印出第一个数字2, //打印完以后,f()函数结束了,obj2离开了作用域,调用析构i--了(变为1了) Obj *obj3 = new Obj;//会调用构造,所以i++了(变为2了) cout << obj3->getVal();//打印出2 delete obj3;//调用析构,i--(变为1了) cout << Obj::getVal();//打印出1
注:
静态数据成员是所有对象所公有的,因此,对多个对象来说,静态数据成员只存储一处,供所有对象共用。静态数据成员的值对每个对象都是一样,但它的值是可以更新的。只要对静态数据成员的值更新一次,保证所有对象存取更新后的相同的值,这样可以提高时间效率。本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥15 电力市场出清matlab yalmip kkt 双层优化问题
- ¥20 matlab yalmip kkt 双层优化问题
- ¥15 如何在3D高斯飞溅的渲染的场景中获得一个可控的旋转物体
- ¥88 实在没有想法,需要个思路
- ¥15 MATLAB报错输入参数太多
- ¥15 python中合并修改日期相同的CSV文件并按照修改日期的名字命名文件
- ¥15 有赏,i卡绘世画不出
- ¥15 如何用stata画出文献中常见的安慰剂检验图
- ¥15 c语言链表结构体数据插入
- ¥40 使用MATLAB解答线性代数问题