将原始类型的数据成员作为const引用返回?

时间:2012-09-10 13:59:39

标签: c++

示例:我有一个名为Class的类,它有一个数据成员 std :: string m_name int m_value

为避免不必要的副本,我这样做。

const std::string& Class::name() const;

为了使函数一致,对原始类型执行此操作是否可以接受?

const int& Class::value() const;

1 个答案:

答案 0 :(得分:0)

对于API的用户来说,它没有任何区别。 他的代码看起来像

Class c;
c.value(1940);
int x = c.value();

无论你怎么写它。

如果您返回引用(您可能想要或可能不想要),他可能会做的一件事是

const int &x = c.value();
int &k = const_cast<int &>(x);
k++; // will change the internals of your object

这是你的选择。