我遇到了一個基本的數組問題,我似乎無法得到我的頭。傳遞數組到對象方法
我有一個類「StaticDisplayLayer」和構造函數有兩個參數 - 一個int和指針的3個無符號整型短的數組:
//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**)
我知道第二個候選人是我正在嘗試使用的人,但顯然我不明白指向數組的指針的概念。如果有人能夠闡明如何調用構造函數和/或解釋這個的任何資源,我會很感激它 - 到目前爲止,我在網上的搜索並沒有真正發揮很大的作用。
你有沒有考慮過爲此使用`std :: vector`?你可以用它來解決所有那些複雜的語法。 – Naveen 2011-12-14 17:47:47
是的,我正要用矢量來重寫它,但不想只是讓我不明白自己做錯了什麼。 – TheOx 2011-12-14 17:59:45