class Foo {
public:
Foo(int a, int b);
Foo();
};
Foo foo;
int main(){
foo(1,3);
}
如果我使用全局类Foo,这是正确的做法吗?
如果不是,请问您这样做的正确方法是什么?
注意:我想要全局的类对象。
答案 0 :(得分:5)
是的,您可以声明任何类型,类的全局变量。
不,您不能再在函数内“再次”调用构造函数来初始化它。但是,您可以使用复制赋值运算符来执行此操作:
Foo foo;
int main()
{
foo = Foo(1, 3);
}
或者您可以使用“setter”功能来设置或重新初始化对象。
顺便说一句,根据课程中的数据,您可能希望阅读the rule of three。
答案 1 :(得分:5)
拥有全局对象当然是可能的。你的案子的正确方法是:
Foo foo(1, 3);
int main()
{
// ...
}