私は頭がおかしくないような基本的な配列の問題にぶつかっています。オブジェクトメソッドに配列を渡す
私はクラス「StaticDisplayLayer」を持っているし、コンストラクタは2つのパラメータ取り - int型と3つのunsigned short intの配列へのポインタ:
//constructor definition:
StaticDisplayLayer(int type, unsigned short *displayColor[3]);
//constructor code:
StaticDisplayLayer::StaticDisplayLayer(int type, unsigned short *dColor[3]) : DisplayLayer(type)
{
displayColor = dColor;
}
を、私はそのクラスのインスタンスを作成しようとしています使用して、以下の:
:unsigned short layerColor[3] = {(unsigned short)255,(unsigned short)255,(unsigned short)255};
StaticDisplayLayer myLayer(1, &layerColor);
私の理解では、& layerColorがlayerColor配列へのポインタがあるが、コンパイラは私に次のエラーを与えているということです
no matching function for call to `StaticDisplayLayer::StaticDisplayLayer(int, short unsigned int (*)[3])'
Candidates are:
StaticDisplayLayer::StaticDisplayLayer(const StaticDisplayLayer&)
StaticDisplayLayer::StaticDisplayLayer(GLenum, short unsigned int**)
私は2番目の候補が私が使用しようとしていることを知っていますが、明らかに私は配列へのポインタの概念を理解していません。誰かがこのコンストラクタやこれを説明するリソースを呼び出す方法について少し光を当てることができれば、私はそれを感謝するだろう - これまでのオンライン検索は本当にあまり効果が上がらなかった。
このために 'std :: vector'を使うことを考えましたか?これらの複雑な構文をすべて使いこなすことができます。 – Naveen
ええ、私はベクトルを使って書き直そうとしていましたが、私が間違っていたことを理解することなく、これを放棄したくはありませんでした。 – TheOx