访问者和变异者有何不同?一个例子和解释会很棒。
答案 0 :(得分:17)
访问者是用于读取数据成员的类方法,而 mutator 是用于更改<的类方法/ em>数据成员。
以下是一个例子:
class MyBar;
class Foo
{
public:
MyBar GetMyBar() const { return mMyBar; } // accessor
void SetMyBar(MyBar aMyBar) { mMyBar = aMyBar; } // mutator
private:
MyBar mMyBar;
}
最佳做法是创建数据成员private
(如上例所示),并且只能通过访问器和更改器访问它们。这是出于以下原因:
答案 1 :(得分:4)
class foo
{
private:
int a;
public:
int accessA() const { return(a);}
void mutateA(const int A) { a = A;}
}
也称为getter和setter,可能还有十几个其他术语。