これが私のコードです:
class Soldier {
public:
Soldier(const string &name, const Gun &gun);
string getName();
private:
Gun gun;
string name;
};
class Gun {
public:
void fire();
void load(int bullets);
int getBullets();
private:
int bullets;
}
ソルジャーオブジェクトを介してGunのすべてのメンバー関数を呼び出す必要があります。何かのようなもの:
soldier.gun.fire();
また
soldier.getGun().load(15);
では、どちらがより良いデザインですか?ガンオブジェクトをプライベートメンバーとして非表示にし、getGun()関数を使用してアクセスします。それともパブリックメンバーにしますか?または、これらすべての関数をカプセル化すると、実装が難しくなります。
soldier.loadGun(15); // calls Gun.load()
soldier.fire(); // calls Gun.fire()
では、どれが一番いいと思いますか?