在C ++中帮助处理类和成员变量

时间:2011-02-04 03:33:26

标签: c++

好的我有两个类:图像和场景。现在在Image头文件中,我定义了三个私有变量:xcoord,ycoord和index(以及它们各自的公共getter方法)。

我有另一个名为Scene的类。场景不是Image的子类。场景有两个成员变量:int maximumImage **images。现在在Scene中,我有一些方法试图访问Image类的成员变量。例如:

int beginX =this->images[i].getXcoord;
int beginY =this->images[i].getYcoord;

但是,我收到以下错误:

 error: request for member ‘getXcoord’ in ‘*(((Image**)((const Scene*)this)->Scene::images) + ((Image**)(((long unsigned int)i) * 8ul)))’, which is of non-class type ‘Image*’

scene.cpp:135: error: request for member ‘getYcoord’ in ‘*(((Image**)((const Scene*)this)->Scene::images) + ((Image**)(((long unsigned int)i) * 8ul)))’, which is of non-class type ‘Image*’

在我的scene.cpp文件中,我包含了包含image.h的scene.h,所以我很确定所有内容都已正确链接。我的问题是显而易见的还是我必须提供更多信息?

4 个答案:

答案 0 :(得分:1)

您想调用方法,请尝试:

int beginX = this->images[i]->getXcoord();
int beginY = this->images[i]->getYcoord();

否则编译器正在寻找成员变量而不是getter方法

答案 1 :(得分:0)

如果this->imagesImage**,那么this->images[i]就是Image*

用箭头替换点。

答案 2 :(得分:0)

问题是图像数组保存了指向

的指针

int beginX =this->images[i]->getXcoord;

如果getXcoord是一个函数,你需要像这样调用它

int beginX =this->images[i]->getXcoord();

最后你不需要this->暗示,所以使用

int beginX = images[i]->getXcoord();

DC

答案 3 :(得分:0)

有两个问题。它应该是:

 int beginX = this->images[i]->getXcoord();

错误消息不允许'。' Image *上的运算符,它不是类类型对象。

相关问题