我可以阻止未来的开发人员构建对象吗?

mou*_*sey 2 c++

你有一个A类,你把ctor设置为私有,所以客户不能叫"A a;" 在堆栈上创建obj.但是有一天,另一个开发人员添加了一个新的ctor:"A(int)"并尝试调用"A a(1);" 在main()中.所以这将在堆栈上创建一个obj.你怎么防止这种情况?

Ale*_*lli 11

如果,正如你暗示的那样,你的课程被编辑了,那么你无法做任何事情就无法被"编辑掉" - 你只有一个私人ctor是非常好的保护,但它被其他开发者编辑了.只是非常清楚地记录,必须永远不要编辑这个班级以便有公共ctors,而且,正如评论所说,不要雇用那些践踏这些要求的人! - )