반응형
class Vector
{
// ...
private:
int mX = 0; // not error
int mY = 0; // not error
const static int mDimension = 2; // not error
static int mCount = 0; // error
}
클래스 멤버 변수를 선언할 떄, 위와 같이 선언이 가능합니다. 다만, 정적 변수를 선언하는 것은 아직 지원하지 않는다고 합니다.
class Vector
{
// ...
private:
static int mCount;
};
int Vector::mCount = 0;
따라서 정적 변수를 만족시키기 위해서는 위와 같이 선언하고 활용해야 합니다. 그렇다면 이러한 클래스 변수 선언 방식들을 적극적으로 활용해도 괜찮을까요?
선별적으로 사용해야 한다고 합니다. 커다란 코드베이스에서는 안쓰는게 좋을 수 있습니다. 헤더를 변경할 때마다 헤더를 인클루드 하는 모든 cpp 파일을 다시 빌드해야 합니다. 이 헤더를 다른 헤더들이 인클루드할 수 있고, 그 헤더들을 다시 다른 헤더들이 인클루드 합니다. 그 헤더들을 다시 다른 헤더들이 인클루드를 합니다. 즉, 의존성에 문제가 생길 수 있습니다.
모듈 시스템이 C++20에 들어올 것으로 보여지고 있습니다. 과연 C++20에서는 해당 문제들을 해결해 줄 수 있을지 기대가 됩니다.
반응형
'SW > C++' 카테고리의 다른 글
C++ : filesystem : 파일 복사, 디렉터리 이동, 바꾸기, 삭제, 목록, 권한 : 예제 (1) | 2020.04.16 |
---|---|
C++ : filesystem : 라이브러리 개요, 사용법, 예제, 특징 (0) | 2020.04.15 |
C++ : enum class : enum과 차이점, 장점, 사용법, 반복문 예제 (0) | 2020.04.13 |
C++ : 고정폭 정수형 : 기본 자료형과 차이, 필요성 (0) | 2020.04.12 |
C++ : nullptr 과 null : 간단한 차이점, 사용 방법, 예제 (0) | 2020.04.11 |