, 나는 다음과 같은 pargraph 클래스의 구현이 변경 될 때 헤더에 완전히 정의 된 클래스를 사용하는 소스 파일을 다시 컴파일해야하는 이유는 무엇입니까? 리프만 책에서 캡슐화에 대한 읽기
클래스를 사용하는 클래스 정의 변경, 소스 파일은 클래스 언제든지에게 변경을 다시 컴파일해야 할 때 사용자 코드가 변경되지 필요하지만
을 발견했다.
내가 그것을 사용하는 소스 파일을 컴파일해야하는 이유는, x+2
을 반환 x_plus()
의 몸을 변경 한 경우 다음과 같은 코드
class A {
private:
int x;
public:
A() { x = 0; }
int x_plus();
}
int A::x_plus(){ return x + 1; }
이 가정?
저는 이것이 C++에 의한 프로세스 연결과 관련이 있다고 생각합니다. 맞습니까?
귀하의 질문에 맞는 말이 아닙니다. 변경된 모든 코드와 함께 클래스 정의를 다시 컴파일해야합니다. 이 모든 것은 분명하고 자동적입니다. – xyious
@xyious, 내 클래스를 사용할 사용자 코드에 대해 묻습니다. 클래스의 소스 코드가 아닙니다. –
C++ 빌드 도구는 매우 간단한 종속성 검사를 사용하며 소스 파일의 타임 스탬프 만 봅니다. 따라서 인라인 함수 정의를 사용하지 않고 선언을 .h 파일로 유지하고 .cpp 파일로 구현하면 다른 소스 파일이 다시 빌드되지 않습니다. –