前端之家收集整理的这篇文章主要介绍了
c – 为什么可以从全局范围调用私有构造函数?,
前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
此
代码编译并运行没有
错误:
class foo{
static foo *ref;
foo(){}
public:
static foo *getRef(){
return ref;
}
void bar(){}
};
foo* foo::ref = new foo; // the construcrtor is private!
int main(int argc,const char *argv[])
{
foo* f = foo::getRef();
f->bar();
return 0;
}
有人可以解释为什么可以调用构造函数?
该范围不是全局 – 静态成员在类范围内,因此它们的初始化表达式也在类的范围内.