【发布时间】:2015-02-11 02:02:28
【问题描述】:
现在,这是高度概念化的。我不知道我是否理解正确,所以请帮助我理解其中的区别。
假设name 是一个私有的std::string 数据成员,由getName() 访问器函数访问:
const string& getName() const {
return name;
}
现在,这将返回一个对name 的引用,这只是别名的另一个词。因此,正在返回一个别名,即正在返回 name 数据成员。这是允许的还是会破坏数据隐藏的整个目的?
也就是说,上述方法与常规方法到底有什么不同:
string getName() const {
return name;
}
???
最后,用前者代替后者真的值得吗?
【问题讨论】:
-
不要。 [[[[[[[[[[[[[[[[[[[
-
你想说什么?
-
一个是副本,一个是参考
-
@JamesMoore:怎么样,一个是副本,一个是参考副本?
-
另一个需要考虑的是,你真的需要一个 getter 函数吗?
标签: c++