この質問にはすでに質問がありましたが、私が見た他の回答は私には分かりませんでした。別のタイプのオブジェクトの2Dマトリックスを構築するために使用したいクラスがあります。私は、新しいオブジェクトを作成するメソッドを記述しようとしている、新しいオブジェクトに2Dベクトルのポインタを割り当てるが、私は正しい構文を取得することはできません。(C++)同じオブジェクト型へのポインタの2Dベクトルに新しいオブジェクトをインスタンス化して割り当てるための構文?
std::vector<std::vector<CSinusoid*>> *m_SineMatrix; //2D Vector of pointers to CSinusoid objects
をそして私はこれらの線に沿ってメソッドを作成しよう:
は、私はこのような2次元ベクトルを作成する私はどこ
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