托管对象 C++ 的二维数组



我正在尝试在窗口窗体上创建一个六边形网格。

为此,我创建了一个带有头文件的"六边形"类,如下所示:

ref class Hexagon
{
public:
    Hexagon(int X, int Y, int I, int J);
    Hexagon();
private:
    array<Point>^ vertices;
    Point Centre;
    int i, j;
public:
    int GetX();
    int GetY();
    void SetCentre(int X, int Y);
    void CalculateVertices();
    array<Point>^ GetVertices();
    void drawHexagon();
};

然后,我想有一个存储这些六边形的二维数组。 我这样做的尝试如下:

array<Hexagon^,2>^ Grid

但是我得到"具有静态存储持续时间的变量不能具有句柄或跟踪引用类型"

如何创建要添加六边形的 2D 数组?

ref 类声明一个由垃圾回收器管理的类。 C++/CLI 编译器应用于此类声明的一个强烈限制是此类不能包含非托管对象。 在压缩堆时移动对象时,结果通常很差,从而使指向此类非托管对象的非托管指针无效。

可能的麻烦制造者是Point类型,没有其他候选人。 没有此问题的托管点类型的示例声明如下:

   public value struct Point {
       int x, y;
   };

或者改用烘焙系统::D rawing::P oint 类型。

相关内容

  • 没有找到相关文章

最新更新