我想在一个方法中用C++组合setter/getter,以便能够执行以下操作:
Foo f;
f.name("Smith");
BOOST_CHECK_EQUAL("Smith", f.name());
Run Code Online (Sandbox Code Playgroud)
我不知道如何在Foo类中声明这样的方法:
class Foo {
public:
// how to set default value??
const string& name(const string& n /* = ??? */) {
if (false /* is it a new value? */) {
_name = n;
}
return _name;
}
private:
string _name;
}
Run Code Online (Sandbox Code Playgroud)
我正在寻找一些优雅的解决方案,具有真正的C++精神:)谢谢!
class Foo {
public:
const string& name() const {
return name_;
}
void name(const string& value) {
name_ = value;
}
private:
string name_;
};
Run Code Online (Sandbox Code Playgroud)