Мои искренние извинения, если этот вопрос уже задан, но другие ответы, которые я видел, сбивали с толку. У меня есть класс, который я хочу использовать для построения 2D-матрицы другого типа объекта. Я пытаюсь написать метод для создания новых объектов и назначить указатели в 2D-векторе для новых объектов, но я не могу получить синтаксис правильно.(C++) Синтаксис для создания экземпляров и назначения новых объектов в 2D-вектор указателей на один и тот же тип объекта?
создать 2D-вектор, как это:
std::vector<std::vector<CSinusoid*>> *m_SineMatrix; //2D Vector of pointers to CSinusoid objects
И тогда я пытаюсь создать метод вдоль этих линий:
void CWaveMatrix::Init_SineMatrix(int x, int y)
{
m_SineMatrix[x][y] = new CSinusoid();
}
Строка кода внутри функции, где я возникли проблемы. Я не знаю, как указать конкретный указатель в 2D-векторе, чтобы указать на новый объект.
Обратите внимание, что и вектор, и метод являются частными членами одного и того же класса.
К сожалению, мне кажется, я пропустил некоторые ключевые данные. Внутри Visual Studio знак '=' внутри строки кода под вопросом подчеркивается красным.Когда я нависаю над красной линией, сообщение читает: «no operator» = «соответствует этим операндам». Обычно все, что подчеркивается красным, означает, что что-то не так - вы уверены, что в моем синтаксисе нет ничего плохого? У меня есть вектор указателей, потому что я не знал, что вы только что сказали мне. Хороший звонок! – fmwavesrgr8
Ах, я не заметил, что сама m_SineMatrix является указателем! Вы должны попробовать '(* m_SineMatrix) [i] [j] = новый CSinusoid()'. – PrestonH