저는 C++을 처음 접했고 실제로이 과거의 많은 것을 배웠습니다. 방금 여러 파일을 링크하는 방법이나 "헤더"를 사용하여 내가 생각하는 것을 배웠습니다.Cpp 연결/헤더, 왜 이렇게 했습니까?
제 질문은 헤더 및 링크 파일과 관련되어 있습니다.
나는 당신이 헤더 파일에서 클래스, 구조체 또는 기능을 "정의"한다고 가정되었다. 그런 다음 해당 C 플러스 플러스 파일에서 정의를 설정합니까? 여기에 내가 뭐하는 거지, 그리고 여기에 내가 그것을 읽어 어디 : http://faq.cprogramming.com/cgi-bin/smartfaq.cgi?answer=1044842972&id=1043284392
header.h가 파일 코드
#ifndef HEADER_H
#define HEADER_H
class simple_math{
public:
int add(int, int);
int subtract(int, int);
};
#endif
extras.cpp 파일 코드
#include "header.h"
int math::add(int x, int y){
return (x + y);
};
int math::subtract(int x, int y){
return(x - y);
};
왜 실제 .cpp 파일에서 모든 작업을 수행하지 마십시오. 헤더 파일에 선언 코드를 게시 한 다음, 잘못된 용어를 사용하면 프로토 타입을 별도의 .cpp 파일로 작성하는 이유는 무엇입니까?
내게 이상한 것처럼 보입니다. 그 중 일부는 이러한 함수 또는 클래스 메서드는 헤더에서 "#included"(나는 추측)조차하지 않는 .cpp 파일에 정의 된 얻을 방법. 대신, 헤더는 .cpp 파일에 포함되어 있으며 코드는 여전히 제대로 실행됩니다.
클래스는 상태를 캡슐화하지 않습니다. 대신에 두 함수에 네임 스페이스를 사용할 수 있습니다. 또한 소스 파일은'math :: add()'가 아니라'simple_math :: add()'를 참조해야합니다; 뭔가가 거기 묶여 있지 않습니다. '중복 가능'질문은 헤더 파일을 사용하는 이유를 설명합니다. 기본적으로 헤더 파일은 소스 파일간에 공유되며 소스 파일이 공유 정보의 동일한 정의를 사용하는지 확인합니다. –
그건 나쁘지, 여기에 게시 할 때 기본 "수학"을 "단순한 수학"으로 변경했습니다. 나는 실제로 그렇게 처형 당하지 않았다. –