const는 상수를 의미하며 한번 초기화하면 그 값을 변경할 수 없는 멤버 변수를 의미한다.
class Person{
private:
const string _naem; // inline으로 직접 초기화도 가능
public:
Person(const string& name) : _name(name){
}
};
상수 멤버 함수란 호출한 객체의 데이터를 변경할 수 없는 멤버 함수를 의미한다.
함수의 원형에 const를 붙여서 사용
class Person {
private:
string _name;
float _weight;
float _height;
public:
Person(const string& name, float weight, float height)
: _name(name), _weight(weight), _height(height) {
}
float getWeight(/*const Person* this */) const {
// Person* this가 암시적으로 넘어옴
// const를 붙임으로써 객체 변경이 불가능함
// main에서 상수의 선언을 할수 있게 도와준다
return _weight;
}
};
Person person0("Jam0", 75, 132);
const Person person1 = person0;
const Person person0("Jam0", 75, 132);
Person person1 = person0;
Person* person0 = new Person("Jam0", 75, 132);
const Person* person1 = person0;
const Person* person0 = new Person("Jam0", 75, 132);
Person* person1 = person0;