ページ 11

別クラスでメンバ関数を使いたい

Posted: 2014年10月12日(日) 11:06
by Artery
c++初心者で、クラスの学習中にわからない点がありましたので
質問させて頂きます
クラス player_classから弾発射処理のために
クラス missile_class内のメンバ関数を使いたい(弾発射の通知をしたい)です

コード:

//main.cpp
#include "missile_class.h"
#include "player_class.h"
missile_class missile;
player_class player;

コード:

//player.cpp
void player_class::shoot(){
if (Key[KEY_INPUT_Z>0]){
missile.launch;
}
}
このようにしたいのですが、当然player.cppでmissileが定義されていないので
エラーになります
player.cppでmissileを定義しようとすると、外部参照の未解決エラーになります
どうすればいいのでしょうか

Re: 別クラスでメンバ関数を使いたい

Posted: 2014年10月12日(日) 13:35
by softya(ソフト屋)
ちゃんとオブジェクト指向的に工夫したい場合は下記のトピックが参考になると思います。
「武器クラスへのプレイヤー位置情報の渡し方 • C言語交流フォーラム ~ mixC++ ~」
http://dixq.net/forum/viewtopic.php?f=3&t=15788

で、もっと初心者的にオブジェクト指向的に正しいかは置いておいて処理するなら、missileのインスタンスを何らかの手段でplayer_classが参照出来れば解決します。
引数でもexternでも良いでしょう。externで出来るはずなので「外部参照の未解決エラー」になった場合を見せてもらったほうが良さそうです。
あとメンバ関数の呼び出しが間違っています。missile.launch();が正しいです。