언어/C++
[C++] 상수 멤버 함수 (함수 뒤에 const)
study_memo
2023. 10. 6. 03:04
상수 멤버 함수란?
상수 멤버 함수란 자신이 호출하는 객체를 수정하지 않는 읽기 전용 함수를 의미한다.
멤버 함수 원형의 맨 마지막에 const 키워드를 추가하면, 멤버 함수를 상수 멤버 함수로 정의할 수 있다.
(반환형) (함수이름)(함수인자) const { 구현 } 이런 식으로 인자와 구현 사이에 const 키워드를 넣는다.
//밑에 전체 코드 있으니, 자세한 설명은 밑으로~
class Point
{
public:
int x, y;
void print() const { cout << x << ", " << y << endl;} // print() 는 x, y를 변경시키지 않는다.
void set(int x, int y) const {this->x = x; this->y = y;} // error 발생. x, y가 변한다.
};
상수 멤버 함수는 왜 쓸까?
-> 상수 객체는 상수 함수만 부를 수 있기 때문이다.
#include <iostream>
using namespace std;
class Point
{
public:
int x, y;
void print() const { cout << x << ", " << y << endl;} // print() 는 x, y를 변경시키지 않는다.
void set(int x, int y) {this->x = x; this->y = y;}// error발생
//(이유: x, y가 변하면 안되는데 값을 바꾸고 있기 때문이다.)
};
int main()
{
const Point p1{1, 2}; //const가 붙었으므로 상수 객체
p1.print(); // OK
p1.set(3, 4); // ERROR 발생
return 0;
}