#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;这一句,在程序的生命周期,只会被执行一次。

偶然的你
TA贡献1841条经验 获得超3个赞
这题应该算开放式问题毛病包括这些:内存泄露了init命名严重有误。包含了新建过程的函数,则应使用Create、GetNew之类词元一个没有数据成员的类,其所有成员函数最好为static,否则调用前还得new一个对象,蹩脚。或者不用cpp,用c能获得更多的编译兼容性支持和程序员支持#definef...里头,f一个字母的标示符就位于全局,而且人不像人,鬼不像鬼(实际是函数,用起来时象数据)属于找揍假如多平台编译、被多工程引用,usingnamespacestd可以考虑优化掉,改为后面std::cout
添加回答
举报
0/150
提交
取消