[Basic C++] #4 데이터 멤버의 종류, static, const, 참조 멤버
C++ 클래스 내부 데이터 멤버들의 종류에 대해서 알아보겠습니다.
"전문가를 위한 C"의 8 항목, "클래스와 객체 마스터하기"의 내용입니다.
#0. static 데이터 멤버
class A
{
private:
static int totalCount;
};
Details
- 어떤 데이터 멤버가 특정 클래스에 종속되기는 하나, 객체 별로 각각의 복제본을 갖는 것이 불합리하다고 판단되면, "static" 키워드를 통해 해당 클래스의 객체들이 전역으로 접근 가능한 데이터 멤버를 생성합니다.
#1. const 데이터 멤버
class A
{
public:
const int maxHeight = 100; // 상수 멤버 선언
const int maxWidth = 100; // 상수 멤버 선언
};
Details
- 데이터 멤버를 "const" 키워드를 사용해서 선언하는 경우, 해당 멤버의 생성 시점에 부여한 초깃값을 더 이상 수정할 수 없게 됩니다.
#2. 전방 선언
class B; // 포워드 선언을 통해 해당 클래스를 참조합니다.
class A
{
public:
A(int inX, int inY);
~A();
private:
int x;
int y;
B& bClass;
}
Details
- 두 개의 클래스가 서로 정의되어 각각의 클래스가 서로를 참조할 수 있어야 하는 경우, 포워드 선언을 통해 해결합니다.
#3. const 참조형 데이터 멤버
class B
class A
{
public:
A(int inX, int inY, const B& inBClass);
~A();
private:
int x;
int y;
const B& bclass;
};
Details
- const 참조형 데이터 멤버로 선언된 객체는 해당 클래스의 const 메서드만 호출할 수 있습니다.
'언어 > Basic C++' 카테고리의 다른 글
[Basic C++] #6_오버라이딩과 오버로딩의 차이점 (0) | 2022.03.07 |
---|---|
[Basic C++] #5 메서드 종류, static 메서드, const 메서드 (0) | 2022.03.07 |
[Basic C++] #3_얕은 복제, 깊은 복제 (0) | 2022.03.06 |
[Basic C++] #2 C 스타일의 문자열, char*, const char* (0) | 2022.02.27 |
[Basic C++] #1 Map, Unordered_map, 해쉬 테이블 (0) | 2022.02.23 |