Adaid's Workroom

[C++] OOP in C++ (4) (진행중) 본문

전공 공부/언어

[C++] OOP in C++ (4) (진행중)

어데이드 2018. 6. 23. 13:17

내용 출처 - 옥찬호님 자료 요약

자료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
Comments