C++ - 헤더에서 초기화

mohadang·2022년 10월 10일
0

C++

목록 보기
25/48
post-thumbnail
class Vector
{
private:
  int mX = 0;// OK, 예전에 C++는 static이나 const서만 헤더에서 초기화 가능 하였음,.
  int mY = 0;

  const static int mDimension = 2;
  static int mCount = 0;
};
class Vector
{
private:
  static int mCount;
}
//const static이 아니기 때문에 계속 이렇게 해야 함.
int Vector::mCount = 0;
  • 이걸 써야 할까?
    • 선별적으로
    • 커다란 코드베이스에서는 안 쓰는 걸 추천
    • "헤더를 변경할 때마다"
      • 헤더와 CPP가 나뉜 이유, 컴파일 시간 줄이기 위한것도 그 이유, Java나 C#은 메타 데이터 이용하여 자동으로 분리
      • 헤더를 인클루드하는 모든 .cpp파일을 다시 빌드해야 함.
      • 이 헤더를 다른 헤더들이 인클루드 할 수 있고
      • 그 헤더들을 다시 다른 헤더들이 인클루드 하고
      • 그 헤더들을 다시... 이해했을 거라 생각함
      • 의존성 지옥(dependency hell)에 온 걸 환영!
    • 모듈 시스템을 사용하는 것이 대안
profile
mohadang

0개의 댓글