我正在学习编程,我刚开始学习设置和获取函数。
我的问题是,通常的做法是使用带有返回值的set-functions吗? 就像set-function执行验证一样,如果传入的值通过验证,我希望它返回true。
用Google搜索并通过我的课程材料看了一眼,发现什么都没有,到处都是无效的功能! :)THX
答案 0 :(得分:5)
在某些情况下,您可能希望从setter方法返回*this
的引用以实现fluent interface。一个简单的例子:
class C {
int x,y;
public:
C& setX(int value) { x = value; return *this; }
C& setY(int value) { y = value; return *this; }
};
然后可以通过以下方式使用此类:
C c;
c.setX(1).setY(2);
答案 1 :(得分:2)
getter / setter的核心动机是值验证/健全性检查值,因此返回bool是一种常见的方法,可以确定操作是否成功:
bool Class::setSomething(int a)
{
if (is_ok(a))
{
// set...
return true;
}
return false;
}
这是
但
答案 2 :(得分:0)
取决于setter正在做什么。
我只为类成员分配值的set函数为void
void Class::setParameter(Parameter param)
{
m_parameter = param;
}
如果setter做的不止于此,我可以设想返回一个布尔值。