Adaid's Workroom
[C++] OOP in C++ (4) (진행중) 본문
내용 출처 - 옥찬호님 자료 요약
Member variable - 객체와 연관된 변수
Static 멤버 변수
- 클래스에 종속되는 전역 변수
- 객체별로 변수를 따로 가지는 것이 비효율적일 경우 사용
const 멤버 변수
- 생성 시점에 초기값을 부여한 후 값을 변경할 수 없는 변수
- 객체 수준에서 상숫값을 보유하는 것은 대부분 메모리 낭비지만
static const 멤버 변수를 이용해 객체 간 상숫값 공유할 수 있음
reference 멤버 변수
- 클래스를 멤버 변수로 가지고 참조만 할 때 포인터 또는 레퍼런스형을 사용할 수 있음
- 레퍼런스 타입이 적합한 객체로 초기화되어야만 존재할 수 있어 안전하기 때문에 더 바람직
- 레퍼런스형 멤버 변수는 생성과 동시에 다른 객체를 참조하도록 초기화되어야만 하므로 멤버 이니셜라이저에서 초기화
const reference 멤버 변수
- 레퍼런스형 멤버 변수는 const 객체를 참조할 수 있음
- const 참조된 객체는 const 멤버 함수만 이용할 수 있음
Member function - 객체 와 연관된 함수
멤버 함수
- 다른 말로 메서드(Method)라고도 함
static 멤버 함수
- 특정 클래스 모든 객체에 공통적으로 적용되는 멤버 함수
- 객체에 종속되는 부분이 없다면 static 멤버 함수로 선언 가능
- 선언하도라도 구현 부분은 바뀌지 않음 (static 붙일 필요 X)
- 연결된 객체가 없으므로 코드 구현부에서 this 포인터 이용불가, static 멤버 변수 이용 가능
- 같은 클래스 멤버 함수라면 static 멤버 함수를 보통 멤버 함수처럼 호출할 수 있음
- 클래스 외부에서 호출해야 한다면 스코프 지정 연산자 ::를 이용해야 함
const 멤버 함수
- 객체에 대한 레퍼런스/포인터 변수를 const로 선언하고 객체의 멤버 함수를 호출하면
해당 멤버 변수 값을 바꾸지 않는다는 보증이 있어야만 정상적으로 컴파일 진행
(ex) string getBranchName(); const;
- const로 선언한 멤버 함수 안에서 객체의 멤버 변수를 변경하면 컴파일 오류 발생
- const 제한자는 멤버 함수 선언에 포함되기 때문에 구현부에서도 똑같이 적용해야 함
- static 멤버 함수에는 const 제한자를 적용할 수 없음: 연계되는 객체가 없으므로
- const가 아닌 객체에 대해서는 모든 메서드 호출 가능, const 객체에는 const 메서드만 호출 가능
'전공 공부 > 언어' 카테고리의 다른 글
[C++] OOP in C++ (3) (0) | 2018.06.23 |
---|---|
[C++] OOP in C++ (1) (0) | 2018.06.21 |
[C++] C에서 C++로 (0) | 2018.06.21 |
[C++] Google C++ 코딩 스타일 정리(작성중) (0) | 2018.01.03 |