0

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

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

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

为了使函数保持一致,对原始类型也可以接受吗?

const int& Class::value() const;
4

1 回答 1

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

这是你的选择。

于 2012-09-10T14:10:35.550 回答