C ++ CLI Передача массива в класс - PullRequest
0 голосов
/ 07 мая 2018

Как видно из заголовка, я должен создать класс, который может принимать массивы в качестве параметра.

Вот моя текущая версия файла заголовка:

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»

Класс должен иметь оба конструктора. Я могу принять решение с вектором, но я испытываю с ним почти те же проблемы.

1 Ответ

0 голосов
/ 07 мая 2018

Вот что я имел в виду при переносе инициализации массива в конструктор:

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;  
};
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...