- 클래스 구현 시 생각할 목록은 다음과 같다. (Mutability에 대한 정확한 한글 단어를 찾을 수 없어서 그냥 영어로 통일했음)
- Constructor/Destructor
- Mutability
- Member functions
- Helper functions
- Static members
- Operator overloading
- Namespaces
1. 클래스 템플릿을 구현하는 것이 매우 매우 유용하기는 하지만, 모든 경우의 수를 커버할 수 없을 때, 해당 케이스에 대해서 명시적으로 클래스를 구현해야 한다.
2. 객체의 생성과 소멸은 생성자와 소멸자에서 처리해야 하며, 다른 함수에 떠넘겨서는 안 된다. 또한 일반적인 상황에서의 복사, 이동 연산에 대해서도 고려해야 한다.
3. 어디까지 비상수/상수 접근을 허용할 것인지, Mutability를 생각해야 한다.
4. 함수를 맴버함수로 할 것인지, 아니면 비멤버 헬퍼 함수로 할 것인지, 또는 인스턴스를 통한 접근을 할 것인지, 인스턴스를 생성하지 않고 정적 함수로 할 것인지 생각한다.
5. 연산자 오버로딩은 디폴트 상태에서, 컴파일러가 야기하는 버그들을 사전에 차단할 수 있다.
6. 네임 스페이스는 비멤버 헬퍼 함수를 정의하는데 필수이다.
'C++' 카테고리의 다른 글
[C++] 범위기반 for 루프를 위한 클래스 템플릿 최소 구현 (0) | 2020.11.16 |
---|---|
스마트 클래스 (0) | 2020.11.15 |
윈도우 HANDLE 과 COM 인터페이스에 대해서. (0) | 2020.11.14 |
쉐어드 포인터 (0) | 2020.11.14 |
유니크 포인터 (0) | 2020.11.13 |