C++ cli 将数组传递到类的C++ CLI

C++ cli 将数组传递到类的C++ CLI,c++-cli,C++ Cli,正如标题所说,我必须创建一个可以接受数组作为参数的类 以下是头文件的当前版本: public ref class MyClass { public: MyClass() {}; MyClass(array<int, 2> ^(&A1), const int &i2) : A1(A1), I2(i2) {}; String^ Method(); ~MyClass() {}; private: array<int,

正如标题所说,我必须创建一个可以接受数组作为参数的类

以下是头文件的当前版本:

public ref class MyClass {

public:
    MyClass() {};  
    MyClass(array<int, 2> ^(&A1), const int &i2) : A1(A1), I2(i2) {};
    String^ Method(); 
    ~MyClass() {};

private: 
    array<int, 2>^ A1 = gcnew array<int, 2>(3, 3) {
        { 1, 1, 1 },
        { 1, 1, 1 },
        { 1, 1, 1 },
    };  
    int I2 = 5;  
};

String^ MyClass::Method() // Simple output for debugging 
{
    String^ OutputText;
    int sum=10;
    OutputText= "OutputText = " + sum;
    return OutputText;
}
到目前为止,我得到以下错误:

“$S1”:全局或静态变量可能没有托管类型 'cli::array^'

如果我将数组更改为静态,我将得到:

A1不是MyClass类的非静态数据成员或基类


类必须同时具有两个构造函数。我可以接受使用vector的解决方案,但我在使用vector时遇到了几乎相同的问题。

以下是我在将数组初始化移到构造函数中的意思:

public ref class MyClass {

public:
    MyClass() {
        A1 = gcnew array<int, 2>(3, 3) {
                { 1, 1, 1 },
                { 1, 1, 1 },
                { 1, 1, 1 },
            };  
    };  
    MyClass(array<int, 2> ^(&A1), const int &i2) : A1(A1), I2(i2) {};
    String^ Method(); 
    ~MyClass() {};

private: 
    array<int, 2>^ A1;  
    int I2 = 5;  
};

在构造函数中移动A1数组的初始值。@SergeyShevchenko谢谢你的建议,但我不知道在哪里移动初始值。我保留了数组^A1=gc新数组3,3;正在删除{}部分。这解决了错误,但现在我很好奇,如果使用默认构造函数,如何向A1添加值。