“Setter” and “Getter” Member Functions

“Setter” and “Getter” Member Functions

Encapsulation is a fundamental principle in object orientation. Encapsulation restricts direct access to a data member of a class. Instead, users query the object itself in order to get or set its members’ values. This is usually done by defining “getter” and “setter” member functions, which are also known as mutators and accessors, respectively. A “plain vanilla” setter returns void and takes one argument?the value to be assigned to an object’s member. Setters and Getters are declared public. Consider the following class:

 class Employee{ int id;//..};

As setter of this class looks as follows:

 class Employee{public: void set_id(int n) {id=n;}};

A classic getter returns a value and takes no arguments; it’s declared as a const member function to document the fact that it only observes an object’s state but doesn’t change it. For example:

 class Employee{public: int get_id() const { return id;}};

Usually, the implementation of setters and getters is trivial: they assign and return a value, respectively. Therefore, they are ideal candidates for inlining. Note however that because they are often defined inside the class body, the inline specifier is redundant, unless you can move the definition outside the class body.


Share the Post: