Posts [Programming] C++ 상수 멤버 함수와 this
Post
Cancel

[Programming] C++ 상수 멤버 함수와 this

상수 멤버 함수와 this

1
2
3
4
void print() const
{
	x = 10;
}
  • 함수 선언 및 구현시 “함수 괄호 () 뒤에 const 가 붙는 함수”
  • void print() const
  • 상수 멤버 함수 안에서는 “모든 멤버를 상수 취급”
  • 멤버 데이터의 값을 읽을 수는 있지만 “변경할 수 는 없다”
  • 상수 멤버 함수를 사용하는 “중요한 이유”
    • 코드 작성시 안정성
    • 상수 객체는 상수 멤버 함수만 호출 할 수 있다.
  • 상수 객체는 상수 멤버 함수만 호출할 수 있다.
  • 상수 객체의 상태를 변경할 수 없다. 하지만 “상태를 얻거나 출력 할 수는 있어야” 한다.
  • 사용자 정의 타입을 함수로 전달할 때 call by value 보다는 const reference 가 좋다. (call by value면 메모리가 한번 더 잡히니까)
  • 객체의 상태를 변경하지 않은 모든 멤버 함수는 반드시 상수 멤버 함수로 만들어야 한다.
  • “mutable” 멤버 데이터
    • 상수 멤버 함수 안에서도 값을 변경할 수 있다.
  • 동일 이름의 상수 멤버 함수와 비 상수 멤버 함수를 만들 수 있다.
  • 상수 멤버 함수 안에서 “모든 멤버는 const”이다.
  • 함수 선언과 구현으로 분리할 때는 “선언과 구현 모두에 const를 표기”해야 한다.
  • this
    • 멤버 함수 안에서 사용가능한 “키워드”
    • 자신을 호출한 “객체의 주소”를 담고 있다.
  • 이름 충돌시
    • 멤버 이름과 지역변수의 이름이 동일할 때 지역변수가 우선시 된다.
    • this를 사용하면 멤버에 접근할 수 있다.
  • this를 반환하는 함수
    • this 또는 *this를 반환하면 “멤버 함수를 연속적으로 호출”할 수 있다.
    • cout의 원리
  • this 포인터 주의 사항
    • 정적 멤버 함수 안에서는 “this를 사용할 수 없다.”
This post is licensed under CC BY 4.0 by the author.

[Golang] goroutine channel

[Programming] C++ 상속

Loading comments from Disqus ...