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

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
Artery

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

#1

投稿記事 by Artery » 10年前

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を定義しようとすると、外部参照の未解決エラーになります
どうすればいいのでしょうか

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 15年前
住所: 東海地方
連絡を取る:

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

#2

投稿記事 by softya(ソフト屋) » 10年前

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

で、もっと初心者的にオブジェクト指向的に正しいかは置いておいて処理するなら、missileのインスタンスを何らかの手段でplayer_classが参照出来れば解決します。
引数でもexternでも良いでしょう。externで出来るはずなので「外部参照の未解決エラー」になった場合を見せてもらったほうが良さそうです。
あとメンバ関数の呼び出しが間違っています。missile.launch();が正しいです。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

閉鎖

“C言語何でも質問掲示板” へ戻る