class Car
{
public:
Car() { price = 0; }
~Car(){}
void setPrice(const int& price)
{
this->price = price;
}
int getPrice() { return price; }
private:
int price;
};
int main() {
const Car car;
car.setPrice(10); // error!
car.getPrice(); // error!
}
// car 를 const 로 생성했다. 객체 car 의 멤버의 값을 바꿀 수 없다.
// set 뿐 아니라 get 까지도.. 왜? 멤버 함수가 const 인지 여부를 보기 때문이다.
class Car
{
public:
Car() { price = 0; }
~Car(){}
void setPrice(const int& price) const // 함수 안에서 값을 바꾸지 못하기 때문에 error다.
{
this->price = price;
// price 가 mutable 이라면 가능은 하다...
}
int getPrice() const { return price; } // const 붙여주면 사용 된다.
private:
int price;
};
int main() {
const Car car;
car.getPrice(); // 가능하다.
}