c++ - 让所有 setter 函数返回对 c++ 中对象的引用是否很好?

标签 c++ reference return-type

让所有的setter函数都返回对c++中对象的引用好吗?

最佳答案

如果需要在对象上设置很多东西,这是一个足够可用的模式。

 class Foo
 {
      int x, y, z;
 public:
      Foo &SetX(int x_) { x = x_;  return *this; }
      Foo &SetY(int y_) { y = y_;  return *this; }
      Foo &SetZ(int z_) { z = z_;  return *this; }
 };

 int main()
 {
      Foo foo;
      foo.SetX(1).SetY(2).SetZ(3);
 }

这个模式替换了一个需要三个整数的构造函数:

 int main()
 {
      Foo foo(1, 2, 3); // Less self-explanatory than the above version.
 }

如果您有许多并不总是需要设置的值,这很有用。

作为引用,此类技术的更完整示例在 C++ FAQ Lite 中称为“Named Parameter Idiom”。

当然,如果您将其用于命名参数,您可能需要查看 boost::parameter .或者你可能不会......

关于c++ - 让所有 setter 函数返回对 c++ 中对象的引用是否很好?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/752762/

相关文章:

c++ - GLFW 切换 bool 切换

c++ - 如何静态链接到 POCO C++ so 文件

c# - 如何将可选指针参数从 C++ 代码转换为 C#

rust - 为什么不能在同一结构中存储值和对该值的引用?

python - 如何在python中实现引用列表?

c++ - 返回指针无法正常工作

C++ boost asio |同步写入到异步读取 |无法在第二次读取中接收到正确的数据

c++ - 如何自动更新重写方法的 *this 返回类型?

java - 如何返回类 - 输入方法

具有模板化函数的 C++ 调度表