• 클래스 구현 시 생각할 목록은 다음과 같다. (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
복사했습니다!