C++:为全局类变量赋值

Som*_*ing 3 c++

考虑类MyClass没有默认构造函数.

我想编写一个如下所示的代码:

MyClass instance;

void init_system() {
    instance = MyClass(parameters, of, the, constructor);
}
Run Code Online (Sandbox Code Playgroud)

我上面写的代码当然失败了,错误MyClass没有没有参数的C'tor.

有没有正确的方法,或者我必须实现一个解决方法,例如使用共享指针?

Que*_*tin 7

好吧,你的班级的默认对象可以明智地存在,或者它不能.
在后一种情况下,您可能感兴趣std::optional(boost::optional在C++ 17之前)推迟对象的构造.