現在C++のクラスを勉強中でコンソールゲームを作っています。
弾クラスとプレイヤクラスを作成しました。
弾の発射時にプレイヤのx座標とy座標を取得したいのですがプレイヤクラスの
privateメンバ変数にあるので取得ができません。
他クラスのprivateメンバ変数の値を取得する方法はないのでしょうか?
また、他によい方法があれば教えてもらえるとうれしいです。
[C++] privateのメンバ変数の値を取得したい
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 13年前
- 住所: 東海地方
- 連絡を取る:
Re: [C++] privateのメンバ変数の値を取得したい
> 他クラスのprivateメンバ変数の値を取得する方法はないのでしょうか?
わざわざprivateしている訳ですので、座標を戻すメソッドを新設したほうが良いでしょう。
私としてはx,yは一塊なので戻り値を構造体で返すのをおすすめします。
わざわざprivateしている訳ですので、座標を戻すメソッドを新設したほうが良いでしょう。
私としてはx,yは一塊なので戻り値を構造体で返すのをおすすめします。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。
Re: [C++] privateのメンバ変数の値を取得したい
プレイヤーの座標を元に、どこから弾が出るかを弾クラスが処理するのは、設計としてマズいのでは。
弾はプレイヤーに従属するものですから、へにっくすさんのおっしゃるように、プレイヤーが、弾(あるいは弾を発射する位置の基準となる座標)を返すメソッドを持つべきと思います。
弾はプレイヤーに従属するものですから、へにっくすさんのおっしゃるように、プレイヤーが、弾(あるいは弾を発射する位置の基準となる座標)を返すメソッドを持つべきと思います。
Re: [C++] privateのメンバ変数の値を取得したい
オフトピック
単に
>他クラスのprivateメンバ変数の値を取得する方法はないのでしょうか?
というのが本題なんじゃないかな…とか.(件名もそんな感じだし)
>他クラスのprivateメンバ変数の値を取得する方法はないのでしょうか?
というのが本題なんじゃないかな…とか.(件名もそんな感じだし)
Re: [C++] privateのメンバ変数の値を取得したい
>usaoさん
そういうことであれば
privateメンバ変数の参照かポインタを返すメンバ関数を用意し、その戻り値を保持して使えばいつでも外部からアクセスできます
という回答もOKということになりますかね。
C++のクラスを勉強中でコンソールゲームを作っている、という背景を考慮した回答をしたつもりですが。
そういうことであれば
privateメンバ変数の参照かポインタを返すメンバ関数を用意し、その戻り値を保持して使えばいつでも外部からアクセスできます
という回答もOKということになりますかね。
C++のクラスを勉強中でコンソールゲームを作っている、という背景を考慮した回答をしたつもりですが。
Re: [C++] privateのメンバ変数の値を取得したい
やはり座標を取得するメソッドを作るのが良いのでしょうか。
みなさんありがとうございました。
確かにその通りです。ゲーム設計についても勉強していくことにしました。ISLe さんが書きました:プレイヤーの座標を元に、どこから弾が出るかを弾クラスが処理するのは、設計としてマズいのでは。
弾はプレイヤーに従属するものですから、へにっくすさんのおっしゃるように、プレイヤーが、弾(あるいは弾を発射する位置の基準となる座標)を返すメソッドを持つべきと思います。
みなさんありがとうございました。