这是我的代码:
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;
}
我需要通过 Soldier 对象调用 Gun 的所有成员函数。就像是:
soldier.gun.fire();
或者
soldier.getGun().load(15);
那么哪一个是更好的设计呢?将 gun 对象隐藏为私有成员并使用 getGun() 函数访问它。还是让它成为公共成员?或者我可以封装所有这些功能会使实现更加困难:
soldier.loadGun(15); // calls Gun.load()
soldier.fire(); // calls Gun.fire()
那么你认为哪一个是最好的呢?