据我所知,作为 C++ 的新手,两者都打算将私有(private)成员公开给公众。我们可以这样说:
// 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
- 这两种访问私有(private)成员的方式有什么区别?
- 如果我所需要的只是 get 或 set 而不在这些函数中执行任何其他操作?
最佳答案
使用 set_name,您可以对输入执行验证,并在必要时抛出异常。您还可以同时更新任何其他类(class)成员。
如果您返回一个引用,您将失去对可以设置的内容的控制,因为可以通过引用修改成员。事实上,正如您所指出的,您也可以拥有成员变量 public。
关于C++通过ref返回成员的方法和get-set方法之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29180830/