0
我得到错误代码C2512,这是没有适当的默认构造函数可用。然而,在我看来,一切都应该工作,所以我有点困惑如何让这个编译。如何在C++ cli中正确使用正向声明的类?
这里是头文件代码:
namespace MyNamespace
{
ref class ForwadDeclaredClass;
public ref class MyClass
{
public:
MyClass();
// ...
private:
ForwadDeclaredClass^ fc;
}
}
现在,在我的cpp文件中,我定义的转发类,并尝试在构造函数MyClass的使用它。
using namespace MyNamespace;
//...
public ref class ForwardDeclaredClass
{
public:
ForwardDeclaredClass()
{
}
}
MyClass::MyClass()
{
// Compiler complains with error code here
fc = gcnew ForwardDeclaredClass();
}
我知道我必须缺少一些简单的东西,但我只是没有看到它。任何帮助,将不胜感激。
不是*大部分代码,而只是'ForwardDeclaredClass'的定义。前向声明是针对'MyNamespace :: ForwardDeclaredClass'进行的,因为'ref class ForwadDeclaredClass;'行在命名空间内,但定义是针对':: ForwardDeclaredClass'(它位于命名空间之外)。不需要在'namespace'块中包含'MyClass :: MyClass()'定义 - '使用名称空间MyNamespace'在那里生效。 –