我可以在c ++中全局声明类对象吗?

jpm*_*jpm 5 c++ global reference class object

class Foo {
public:
    Foo(int a, int b);
        Foo();
};


Foo foo;
int main(){
 foo(1,3);
}
Run Code Online (Sandbox Code Playgroud)

如果我使用全局类Foo,这是正确的做法吗?

如果不是,请问您这样做的正确方法是什么?

注意:我想要全局的类对象.

Som*_*ude 5

是的,您可以声明任何类型,类的全局变量.

不,您不能再在函数内"再次"调用构造函数来初始化它.但是,您可以使用复制赋值运算符来执行此操作:

Foo foo;

int main()
{
    foo = Foo(1, 3);
}
Run Code Online (Sandbox Code Playgroud)

或者您可以使用"setter"函数来设置或重新初始化对象.

顺便说一句,根据类中的数据,您可能想要阅读有关三的规则.


Ker*_* SB 5

具有全局对象当然是可能的。在您的情况下,正确的方法是:

Foo foo(1, 3);

int main()
{
    // ...
}
Run Code Online (Sandbox Code Playgroud)