// I need to have access to 'a' in whole file
// I cannot call constructor now
static A a;
int main()
{
/*
some code
*/
glewInit();
/*
some more code
*/
a = A();
}
我需要在调用 glewInit(( 函数
后调用构造函数它的构造函数正在使用 gl 函数
我可以阻止C++初始化"a"变量吗?如果是,如何?
将函数与静态变量一起使用:
A &getA()
{
static A a;
return a;
}
并且仅在可以创建时才访问它。
如果创建仅依赖于全局状态,Slava的答案很好,但是如果您需要计算一些构造函数参数,最好的办法是组合一个局部变量(因为它在main()
它将存活到程序结束时(和一个指向它的指针:
static A* a;
int main()
{
/* some code that determines arg1 and arg2 */
A real_a(arg1, arg2);
a = &real_a;
/* call all the functions that use ::a */
}