我有以下需要使用的变量,并且必须围绕它编写自己的包装器以进行分配。我正在超越分配(因为我将不得不使用我制作的这个包装器)并且想要在我的包装器中重载下标运算符以便将它与双指针数组一起使用。我在代码中的意思是:
是)我有的:
从库的给定标题:
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& 也不会返回它。只是为了满足我的好奇心并帮助我理解为什么这是不可能的,有人可以告诉我如果可以的话,这将如何实现,为什么会这样?请记住,我还不太了解指针(我知道它们如何工作的基础知识,但仅此而已),并希望借此来扩大我的理解。