私は、プレイヤーオブジェクトとゲームオブジェクトの2つがあるプロジェクトに取り組んでいます。別のクラスの別のクラスの関数を呼び出す
2人のプレイヤーオブジェクトは、ゲームオブジェクトの機能display()にアクセスする必要がありますが、これはどのように実行できるのかわかりません。以下は
は、コアの問題を強調抜粋です:
class Game
{
public:
Game() {}
display() {...}
...
};
class Player
{
public:
Player() {}
void input()
{
...
// display();
...
}
};
この問題を解決する方法を提案してください。このデザインパターンに根本的な問題がある場合は、修正してください!
私はあなたのデザインに疑問があります。特にオブジェクトインスタンスがグローバル変数である場合はどうでしょうか?私は 'Game'オブジェクトや' Player'オブジェクトをグローバル変数にするのではなく、 'Game'オブジェクト(参照またはポインタとして)を' Player'コンストラクタに渡し、それぞれの 'Player'オブジェクトストアこの参照またはポインタを使用してその参照またはポインタを使用します。それで 'Game :: display'関数を何度も呼び出しても' Player'オブジェクトは簡単です。 –
@JoachimPileborgゲームとプレーヤーのオブジェクトは元のコードではグローバル化されていませんでしたが、私がこの例を作ったとき、私はそれらをグローバルにしました。しかし私はあなたの考えが好きです。病気はそれを実装しようとする。 –