トップページ > 過去ログ > 記事閲覧
オブジェクト生成について
名前:葡萄球 日時: 2009/12/25 00:03

C++での事なのですが クラス内で他のクラスのオブジェクトのメンバ関数を使いたいのですがなかなか上手く行かなくて、 「'関数名'の左側はクラス、構造体、共用体でなければなりません」と表示されてしまいます。 このような場合はどのような原因によって起こるのでしょうか? エラーの出る今のコードは ヘッダAのクラスをヘッダBのpublicでオブジェクト生成して、ソースCでメンバ関数を使っています。 すみません。書き終わった後見たらDXライブラリ関係無いですね。

Page: 1 | 2 |

Re: オブジェクト生成について ( No.1 )
名前:らり 日時:2009/12/25 02:14

ソースがないと何ともいえませんが、 文字通りの原因ではないでしょうか? メンバ関数へのアクセスは"."を使いますが、 この左側が少なくともそのクラスではない、ということだと思います。 記述してある内容からだけでは、この程度しか言えません。
Re: オブジェクト生成について ( No.2 )
名前:葡萄球 日時:2009/12/25 02:36

らりさん返信ありがとうございます。 A.cpp void Status::getPosition( int *px, int *py) { if( px ) *px = m_x; if( py ) *py = m_y; } B.h Status m_status; C.cpp m_status.getPosition(&mx,&my); というふうに使っています。 'm_status' : 定義されていない識別子です。(すみません重要なコチラを書いてませんでした。) と '.getPosition' の左側はクラス、構造体、共用体でなければなりません とエラーが出てしまいます。
Re: オブジェクト生成について ( No.3 )
名前:アロエ 日時:2009/12/25 02:46

C.cppにB.hをインクルードしていますか?
Re: オブジェクト生成について ( No.4 )
名前:葡萄球 日時:2009/12/25 11:33

アロエさん返信ありがとうございます。 とりあえずソースファイルには全てのヘッダファイルをインクルードしてあります。 ちなみに C.cpp m_status.getPosition(&mx,&my); はコンストラクタで呼び出しています。

Page: 1 | 2 |