我是一个开始的程序员,我一直在C++ OOP方面遇到了一些麻烦。具体来说,今天晚上,我试图编写一个简单的类,它接受事件并在多个图像之间切换,并指向存储在数组中的每个图像。当尝试创建一个返回指向数组本身的指针的getter函数时,我遇到了一个令人困惑的问题。返回指针数组?
基本上,我试图做这样的事情:
class SlideShow
{
public:
image *getSlideArray();
private:
image *slideArray[10];
};
所以,我想有存储指向每个图像阵列。我也想有一个函数返回数组本身的地址。我试图定义getSlideArray()函数时遇到了一个问题...我只是不完全确定它为什么不能正常工作...
这是我最初尝试的,在我的类的源文件中:
image *SlideShow::getSlideArray()
{
return this->slideArray;
}
在这种尝试中,编译器不停地提出问题与使用“这个”关键字,说什么我试图返回并不是先前指定的类型。不过,这是我迄今为止一直在编写我的getter函数的方式,它通常在使用简单变量时起作用......我怀疑这里存在一些问题,因为“this”是一个指针,'slideArray'是一个指向一个数组的指针,它也包含指针......但是我很糟糕,而且现在这种引用的水平超过了我的头。我花了一段时间才收集对指针的基本理解,使用地址&运算符等进行引用。指向指针和指针数组的指针更令人困惑。
我还应该提到,我找到了一种解决方法,我的代码在其中编译。 (虽然我不能真正运行它来检查,看看它是否工作在运行时尚未..)我的工作围绕涉及添加定义/ return语句类的声明本身(头文件内):
class SlideShow
{
public:
image *getSlideArray() {return *slideArray;);
private:
image *slideArray[10];
};
现在。这个编译正确...但是,这也让我感到困惑。我知道,一般来说,当你返回一个数组(比如一个int数组)时,你返回数组中第零个槽的地址。但是如果我试图返回一个intArray [5],当它返回时,我会直接写'intArray',对吗?从本质上讲,我并不困惑为什么我必须在这种情况下添加*之前的'slideArray'...
所以不管我用哪种方式尝试做,它都让我感到困惑。我知道这里有一些'技巧',它可能与返回指向指针或指针的指针有关,但是我只是无法自己完成。我真的很希望学习这个主题,以便我可以开始掌握编程,特别是OOP ...
任何人都可以帮助我更好地理解这一点吗?
类幻灯片错误 - 检查大括号。 – Abhineet
请尝试http://www.cplusplus.com/doc/tutorial/pointers/和http://www.cplusplus.com/forum/beginner/6644/ – Abhineet