【发布时间】:2015-03-21 08:43:49
【问题描述】:
据我所知,作为 C++ 的新手,两者都打算将私有成员公开。我们可以这样说:
// Make everything outside can see value of name
object.get_name(); // get method
object.name(); // return member by ref to get
// Make everything outside can set value of name
object.set_name("Name"); // set method
object.name() = "Name"; // return member by ref to set
- 这两种访问私有成员的方式有什么区别?
- 如果我所需要的只是 在这些函数中获取或设置而不执行任何其他操作?
【问题讨论】:
-
这没什么大的区别。但是如果你使用 getter 和 setter,你可以验证值并尽可能做一些工作。如果你使用 public 成员,当你需要在 get 或 set 时添加一些代码时,你将不得不修改所有的 refs。
-
getter/setter 方法允许您更改类的内部表示并保持不变量。