使用する必要がある次の変数があり、割り当てのために独自のラッパーを作成する必要があります。私は割り当てを超えて (作成したこのラッパーを使用する必要があるため)、ダブルポインター配列で使用するために、ラッパーで添字演算子をオーバーロードしたいと考えています。コードでの意味は次のとおりです。
私が持っているもの:
ライブラリの指定されたヘッダーから:
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
}
もちろん、ダブルポインターはポインターを返すため、これは機能しません。これは、返すように指示しているものではありませんが、 *pixels& を返しても返されません。私の好奇心を満足させ、なぜこれが不可能なのかを理解するのを助けるために、誰かがこれを実装する方法を教えてもらえますか? 私はまだポインターをよく理解していないことを覚えておいてください (ポインターがどのように機能するかの基本は知っていますが、それだけです)、これを使用して理解を非常に広げたいと考えています。