WinAPI

함수 선언 뒤에 const 키워드

Nin 2021. 1. 14. 02:37
class A
{
public:
   int m_Number;

public:
   void Func()
   {
      m_Number;
   }
public:
   A(int _Number) : m_Number(_Number)
   {
   
   }
};

위의 코드에서 Func 함수의 m_Number에는

this가 생략되어 있다.사실 this->m_Number이며

this는 A* const 이다.

그렇기 때문에 this = nullptr; 이 코드는 불가능.


복습)

int* const Ptr = nullptr;
Ptr = nullptr // 불가능 포인터가 가리키는 주소값이 const가 된다.

void Func() const
{
   
}

이렇게 함수 선언 뒤에 const를 붙이면 

여기서의 this는 const A* const가 된다.

즉 가리키는 주소와 실제값 모두 const가 된다.

즉 해당 함수에 속한 객체의 멤버 변수를 변경할 수 없다.