본문 바로가기
[C++]

[C++] constant 함수

by Hevton 2021. 7. 5.
반응형

 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