我想知道C++中的良好实践,而且我正在面临为类成员制作getter/setter的问题。通过引用返回或创建一个典型的setter/getter?
那么,为什么不简单地通过引用返回成员,这样我可以修改或访问它的值来读取它呢?具体而言,这是我的代码:
class Chest : public GameObject
{
public:
Chest();
~Chest();
static int& num_chests();
private:
static int num_chests_;
};
这是不好的做法?我应该用这些来代替吗?
class Chest : public GameObject
{
public:
Chest();
~Chest();
static int num_chests();
static void set_num_chests(int num_chests);
private:
static int num_chests_;
};
如果获取没有做任何事情,而二传手没有做任何事情,那么两者都是错误的。公开'num_chests_'。否则,第二个是必需的。通过引用返回成员非常罕见。 – 2013-04-26 20:13:26
或者你可以使用选项3并将'num_chests'作为'public'数据成员,特别是如果你的setter不需要做任何验证测试。 – Praetorian 2013-04-26 20:13:30
我认为这不是特别糟糕的做法。在C++中使用/返回引用是一种常见的习惯用法。 – 2013-04-26 20:13:40