안녕하세요. I 클래스 .H 파일 또는 실행 파일 통화 당에서 클래스 생성자의 본문을 정의 할 수 있습니다헤더 파일 VS 생성자 (.cpp) 파일에 생성자 정의
이 그냥 어쨌든 여기에 우리가 간다 '개인 환경 설정'카테고리에 해당 될 수 .... 이 두 스타일은 컴파일러가 특정 프로젝트 내에서 염려하는 한 동일합니다 (프로젝트는 dll을 의미합니다). 동일하게 모든 멤버 함수에 동일하게 적용됩니다. 헤더 파일에 정의되거나 정의 된 다음 cpp 파일에 정의 될 수 있습니다. 그러나이
...
는 내가 다른 프로젝트에서 같은 클래스 헤더 파일을 포함해야하는 경우 (헤더 파일을 사용하여 궁극적으로 코드가 다른 DLL을에 끝을 의미) 발견 헤더 파일에 실제 구현을하는 것은 컴파일시에 두통을 일으킨다. (필자는 그 시점에 도달하지도 않는다.) 왜? 잘 자세히 설명하지는 않겠지 만 컴파일러는 분명히 다른 헤더 파일 등에서 정의 된 모든 함수를 해결하려고합니다 ... 가난한 개발자가 다양한 헤더 파일을 가져 오기 시작하도록 강요합니다 ...
LONGSTORY short :
헤더 파일을 구현에서 제외하고 '선언'으로 사용하는 것이 가장 좋지 않습니까? 그렇게하면 많은 여분의 쓰레기를 가지고 다닐 필요없이 하나 이상의 프로젝트에 이들을 포함시키는 것이 더 쉬울 것입니다.
당신의 의견은 어떻습니까? 감사합니다.
헤더에 구현을 넣을 수있는 경우도 있습니다. 두 개의 서로 다른 파일이 서로를 포함 할 필요가 있다면 헤더에서 수행 할 수 없으므로 cpp에서 완료해야합니다. –
"할 수 없다"는 뜻이며 "할 수 없다"는 뜻입니다. 그렇지 않으면 좋은 지적입니다. – Thomas
'사소한'예외는 간단한 생성자에 쉽게 적용 할 수 있습니다. 다르게 취급하거나 인라인되지 않도록 할 이유가 없습니다. –