0

我是 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:缺少类型说明符错误。

我将不胜感激有关此问题的任何帮助和指示。谢谢

4

1 回答 1

1

注意:此答案基于问题的原始版本,代码中缺少^并且类无序。

这里有一些代码可以帮助你(移动BBBbefore的定义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 托管代码。

于 2013-10-24T20:11:09.220 回答