我有一个C ++ / Cli项目和原生混合项目。我创建了一个自定义对象,我想创建一个该对象类型的列表似乎不行。这是代码:
#pragma once
#include <windows.h>
#include <stdio.h>
#include "..\..\Toolkit\Include\TypeHelper_h.h"
using namespace System;
using namespace System::Runtime::InteropServices;
using namespace System::Threading;
using namespace System::Collections::Generic;
namespace TypeHelperControl {
public ref class MyClass
{
public:
MyClass(){List<TypeVariable^>^ m_someObj;};
~MyClass();
private:
};
public ref class TypeVariable
{
public:
TypeVariable(String^ VariableName,String^ VariableType,String^ VariableValue)
{
this->m_Name = VariableName;
this->m_Type = VariableType;
this->m_Value = VariableValue;
};
String^ get_Name()
{
return m_Name;
}
String^ get_Type()
{
return m_Type;
}
String^ get_Value()
{
return m_Value;
}
private:
String^ m_Name;
String^ m_Type;
String^ m_Value;
};
};
列表^ m_someObj;正在产生多个错误
error C2059: syntax error : '>' error C2065: 'VariableType' : undeclared identifier error C1004: unexpected end-of-file found
谢谢
答案 0 :(得分:1)
error C2065: 'VariableType' : undeclared identifier
我认为这个错误是因为在文件的这一点上,编译器还没有看到类TypeVariable
。我建议将您的类重新组织成单独的头文件,并将#including恰当地组合在一起,但是快速&amp;肮脏的解决方案是将public ref class TypeVariable;
前向声明贴在MyClass
的定义之上。
error C2059: syntax error : '>' error C1004: unexpected end-of-file found
解决上述错误后,这些错误应该消失。
答案 1 :(得分:1)
您必须在首次使用之前定义“TypeVariable”:
public ref class TypeVariable
{
};
public ref class MyClass
{
public:
MyClass()
{
List<TypeVariable^>^ m_someObj;
}
};