我有下面的變量,我需要使用,並且必須編寫自己的包裝器才能完成作業。我超越了賦值(因爲我將不得不使用這個包裝器),並且想要在包裝器中重載下標操作符,以便將它與雙指針數組一起使用。我的意思的代碼是這樣的:重載下標運算符並使用雙指針?
我有什麼:
從給定的標題爲庫:
typedef struct { // A pixel stores 3 bytes of data:
byte red; // intensity of the red component
byte green; // intensity of the green component
byte blue; // intensity of the blue component
} pixel;
typedef struct {
int rows, cols; /* pic size */
pixel **pixels; /* image data */
} image;
我的類(當然包括在報頭):
pixels& MyWrapper::operator[] (const int nIndex) {
return Image.pixels[nIndex]; // where Image is of type image
}
當然,這不起作用,因爲雙指針返回一個指針,這不是我所說的返回,但返回*像素&也不會返回它。爲了滿足我的好奇心,並幫助我理解爲什麼這是不可能的,有人可以告訴我,如果它可以完全實現,爲什麼會這樣呢?請記住,我不太瞭解指針(我知道它們是如何工作的基礎知識,但多數民衆贊成在它),並希望用它來擴大我的理解。
...嗯......你應該嘗試像素*而不是? – quasiverse 2011-04-08 07:20:08
...或者只是將像素*作爲一個像素數組返回,並在其上使用[]? – 2011-04-08 10:50:41