示例:我有一个名为Class的类,它有一个数据成员 std :: string m_name 和 int m_value 。
为避免不必要的副本,我这样做。
const std::string& Class::name() const;
为了使函数一致,对原始类型执行此操作是否可以接受?
const int& Class::value() const;
答案 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
这是你的选择。