C++通过ref返回成员的方法和get-set方法之间的区别

标签 c++ get set

据我所知,作为 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/

相关文章:

c++ - 哪种 C++ 构造函数风格更好?

c++ - 错误的模板参数数量错误

javascript - 问题 : try connect with a Socket. io 服务器没有使用客户端应用程序的端口

php - 当我使用 set 作为捕获时,为什么 Twig 不能使用变量作为数组的索引?

c++ - 在 C++ 中获得准确的执行时间(微秒)

c++ - 如何缩小对象的大小

javascript - 如何在对话框按钮函数中获取 JS 变量

c# - 如何避免重新初始化一个永不更改的类?

set - Common Lisp 中的 Mandelbrot Set 实现

python:比较两个列表并按顺序返回匹配项