为了账号安全,请及时绑定邮箱和手机立即绑定

C++ 静态函数

C++ 静态函数

至尊宝的传说 2019-04-08 11:17:04
#includeusingnamespacestd;#definefS::init()classS{public:staticS*init(){S*p=newS;returnp;}voidprint1(){cout
查看完整描述

2 回答

?
郎朗坤

TA贡献1921条经验 获得超9个赞

staticS*init(){
staticS*p=newS;
returnp;
}
这个应该是考你对singleton的理解。
将init里p声明为静态的就可以了。
无论init被调用多少次,
staticS*p=newS;这一句,在程序的生命周期,只会被执行一次。
                            
查看完整回答
反对 回复 2019-04-08
?
偶然的你

TA贡献1841条经验 获得超3个赞

这题应该算开放式问题
毛病包括这些:
 内存泄露了
 init命名严重有误。包含了新建过程的函数,则应使用Create、GetNew之类词元
 一个没有数据成员的类,其所有成员函数最好为static,否则调用前还得new一个对象,蹩脚。或者不用cpp,用c能获得更多的编译兼容性支持和程序员支持
 #definef...里头,f一个字母的标示符就位于全局,而且人不像人,鬼不像鬼(实际是函数,用起来时象数据)属于找揍
 假如多平台编译、被多工程引用,usingnamespacestd可以考虑优化掉,改为后面std::cout
                            
查看完整回答
反对 回复 2019-04-08
  • 2 回答
  • 0 关注
  • 438 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号