这在 C# 中是微不足道的,但在 C++(本机、Win32、Visual C++)中我看不到解决方案。因此,我有具有非平凡构造函数的 MyClass1 类,并且在 MyClass2 中我希望拥有 MyClass1 类型的静态成员:
MyClass1.h:
class MyClass1
{
public MyClass1(type1 arg1, type2 arg2);
}
MyClass2.h:
class MyClass2
{
public:
static MyClass1 Field1;
}
和 MyClass2.cpp:
MyClass1 MyClass2::Field1(arg1, arg2);
我希望这样的代码将初始化 MyClass2::Field 并在此初始化期间调用 MyClass1 构造函数。但是,看起来编译器只为 Class1 分配内存,并且从不调用构造函数,就像我这样做:
MyClass1 MyClass2::Field1 = *(MyClass1 *)malloc(sizeof(MyClass1));
C++ 中是否有任何“官方”方式来使用非平凡的构造函数初始化静态类成员?