const and inout Member Functions
Get to learn about const and inout member functions in this lesson.
We'll cover the following
const
member functions
Some member functions do not make any modifications to the object that they are called on. An example of such a function is toString()
:
struct TimeOfDay {
// ...
string toString() {
return format("%02s:%02s", hour, minute);
}
// ...
}
Since the whole purpose of toString()
is to represent the object in a string
format anyway, it should not modify the object.
A member function that does not modify the object is declared by the const
keyword after the parameter list:
struct TimeOfDay {
// ...
string toString() const {
return format("%02s:%02s", hour, minute);
}
}
That const
guarantees that the object itself is not going to be modified by the member function. As a consequence, the toString()
member function is allowed to be called even on immutable objects. Otherwise, the struct’s toString()
could not be called:
Get hands-on with 1400+ tech skills courses.