이 질문이 이미 제기되었지만 내가 본 다른 대답이 나에게 혼란 스럽다면 진심으로 사과드립니다. 다른 유형의 객체의 2D 행렬을 작성하는 데 사용하려는 클래스가 있습니다. 새로운 객체를 생성하는 메소드를 작성하려고하고 있는데, 2D 벡터의 포인터를 새 객체에 할당하려고합니다.하지만 구문을 올바르게 가져올 수없는 것 같습니다.(C++) 동일한 객체 유형에 대한 포인터의 2D 벡터에 새 객체를 인스턴스화하고 지정하는 구문은 무엇입니까?
std::vector<std::vector<CSinusoid*>> *m_SineMatrix; //2D Vector of pointers to CSinusoid objects
을 그리고 나는이 라인을 따라하는 방법을 만들려고 :
나는이 같은 2D 벡터를 만들 난 곳
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