반응형
constant 키워드를 보통 변수 타입에서 쓰곤 했었다.
-> 변수 내용의 변경 불가
constant 키워드를 함수에도 넣을 수 있다. ( 정확히는 멤버함수에 적용 )
-> 멤버 변수의 값을 변경하지 않는 메서드
세 가지의 의미
1. 다른 개발자에게 이 함수의 멤버 변수의 값은 변경하지 않는다는 메세지를 남기는 격
2. 실수로 멤버변수의 값을 바꾸려고 시도시, 컴파일러 단에서 오류.
3. Const 객체를 사용해서 이 함수를 호출할 수 있다.
멤버변수가 함수 내에서 사용되는 변수를 말하는 걸까 아니면, 클래스의 멤버변수를 말하는걸까
-> 멤버변수는 클래스 내부의 변수 의미임.
실험 ---------------------------------------------------------
해보니, 멤버함수(클래스 내부 함수)가 아닌 경우 const 키워드 안되며
const 키워드를 붙인 멤버함수는, 멤버변수를 읽기전용으로 하는 것임.
지역변수나 매개변수랑은 무관.
#include <iostream>
using namespace std;
class h {
public:
void getHP(int a) const {
a = 10;
int b = 4;
b = 10;
cout << a << " " << b << endl;
}
};
int main(int argc, const char * argv[]) {
// insert code here...
h d;
d.getHP(1);
}
OUTPUT
10 10
반응형
'[C++]' 카테고리의 다른 글
[C++] XCODE 특정 파일 제외하고 빌드/컴파일 (0) | 2021.07.05 |
---|---|
[C++] #pragma once (0) | 2021.07.05 |
[C++] 동적 메모리 할당 (0) | 2021.06.24 |
[C++] Lambda Expression (0) | 2021.06.24 |
[C++] 함수 포인터 (0) | 2021.06.24 |