我是VC ++的新手,但多年来一直在使用C#。 我正在尝试将旧的C#转换为VC ++并且难以理解托管与非托管类。
这是我在AAA.h中创建两个新类的地方:
#include "stdafx.h"
using namespace std;
using namespace System;
public ref class BBB
{
public:
Decimal zzz;
Decimal yyy;
DateTime mmddyyyy;
int vvv;
};
public ref class AAA
{
public:
AAA(String^ name);
List<BBB^>^ bbbb;
}
在AAA.cpp中我有:
#include "AAA.h"
using namespace System::IO;
AAA::AAA(String^ name)
{
bbbb = new List<BBB^>;
//do other things
}
在这种情况下,我无法弄清楚如何计算出列表。 我得到C4430:缺少类型说明符错误。
我很感激有关此问题的任何帮助和指示。 感谢
答案 0 :(得分:1)
注意:此答案基于问题的原始版本,代码中缺少^
并且课程无序。
以下是一些可以帮助您前进的代码(在BBB
之前移动AAA
的定义):
public ref class BBB
{
public:
Decimal zzz;
Decimal yyy;
DateTime mmddyyyy;
int vvv;
};
public ref class AAA
{
public:
AAA();
~AAA();
String^ name;
List<BBB^>^ bbbb;
};
正如您所看到的,我们 还需要在^
和String^
中添加List<BBB^>^
。这些是“参考”,必须用于参考类型(您应该也会遇到相关错误,以及在课程结束时丢失的;
。
在AAA
的构造函数中(或在适当的地方),您需要执行以下操作:
bbbb = gcnew List<BBB^>; ///Allocate a new list
仅供参考:ref class
是托管代码。