Константный объект в C++
Перед типом объекта можно написать const. У
константного объекта нельзя менять поля, поэтому
доступны только константные методы этого класса.
Запишем класс с константным методом age
и обычным методом grow:
#include <iostream>
class User {
public:
User(int age) : age_(age) {
}
int age() const {
return age_;
}
void grow() {
age_ = age_ + 1;
}
private:
int age_;
};
Создадим константный объект и выведем возраст методом age.
Обычный метод grow у константного объекта не собирается:
int main() {
const User user(20);
std::cout << user.age() << "\n";
user.grow();
return 0;
}
Сделайте константный объект Employee и покажите, что вызов неконстантного метода записи не компилируется.