2011-02-04 11 views
0

Ok ImageとSceneの2つのクラスがあります。 Imageヘッダーファイルで、xcoord、ycoord、およびindex(それぞれのパブリックゲッターメソッドと同様に)の3つのプライベート変数を定義しました。C++のクラスとメンバ変数のヘルプ

私はSceneという別のクラスを持っています。シーンはImageのサブクラスではありません。シーンには、2つのメンバー変数、int maximumImage **imagesがあります。 Sceneでは、Imageクラスのメンバ変数にアクセスしようとするいくつかのメソッドがあります。たとえば:

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

は、しかし、私は次のエラーを取得:私のscene.cppファイルで

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*’ 

を、私はimage.hが含まscene.hが含まれているので、私はかなり確信していますすべてが適切にリンクされています。私の問題は何か、それとももっと情報を提供しなければならないのでしょうか?

答えて

1

あなたがメソッドを呼び出すようにしたいので、試してみてください。

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

をそれ以外の場合は、コンパイラはthis->imagesImage**であれば、this->images[i]Image*あるgetterメソッド

+0

あなたは正しいです。 Lemmeはそれを修正してもう一度チェックしますが、私はIllにもっとエラーがあると確信しています。 – iRobot

0

メンバ変数を探しているとされていません。

点を矢印で置き換えます。

0

問題は、画像の配列を試すクラス

へのポインタを保持しているにもint beginX =this->images[i]->getXcoord;

getXcoordは、あなたが最後にあなたはいけない。この

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

ようにそれを呼び出す必要がある関数がある場合this->は暗黙に使用する必要があります。

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

DC

0

2つの問題があります。それは次のようにする必要があります。

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

エラーメッセージで '。クラス型オブジェクトではないImage *の演算子。

関連する問題