我只是有一个非常快速的问题,因为我试图掌握C++类的概念。为什么我们不使用一个单一的成员函数来设置和获得数据成员的值,而不是单独的访问器/getter和mutator/setter函数?
示例如下所示:
class Student
{
private:
int rollno;
public:
int setGetRollNo(int rn) {
rollno = rn;
return rollno;
}
};
int main()
{
Student s1;
cout << s1.setGetRollNo(123);
}
它的工作原理与我们尝试分离访问器和赋值函数时的工作原理相同。
1条答案
按热度按时间8yparm6h1#
拥有一个既可以访问成员又可以改变成员的函数并没有什么错。但是,您这样做的方式肯定是不正确的。使用您现在拥有的代码,如果不先将其设置为新值,就无法获得当前值。
相反,更好的方法是返回成员对象的引用:
现在,您可以使用相同的函数访问和修改成员,如下所示:
需要注意的一点是,这个函数除了公开对现有成员的引用之外,并没有做太多的事情。要给它添加更多的功能,你应该查找代理类。
另一件需要注意的事情是这个函数在
const Student
上不起作用。要使它起作用,你应该提供它的const版本。