好的我有两个类:图像和场景。现在在Image头文件中,我定义了三个私有变量:xcoord,ycoord和index(以及它们各自的公共getter方法)。
我有另一个名为Scene的类。场景不是Image的子类。场景有两个成员变量:int maximum
和Image **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,所以我很确定所有内容都已正确链接。我的问题是显而易见的还是我必须提供更多信息?
答案 0 :(得分:1)
您想调用方法,请尝试:
int beginX = this->images[i]->getXcoord();
int beginY = this->images[i]->getYcoord();
否则编译器正在寻找成员变量而不是getter方法
答案 1 :(得分:0)
如果this->images
是Image**
,那么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 *上的运算符,它不是类类型对象。