使用另一个托管VC ++类的List创建托管C ++类

时间:2013-10-24 20:02:07

标签: list class visual-c++ c++-cli

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

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

1 个答案:

答案 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 托管代码。