让所有的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:
int main() { Foo foo(1,2,3); // Less self-explanatory than the above version. }
如果您有许多值不总是需要设置,这很有用.
作为参考,这种技术的更完整的例子被称为C FAQ Lite中的“Named Parameter Idiom”.
当然,如果你使用这个命名参数,你可能想看看boost::parameter.或者你可能不…