나는 간단한 클래스를 정의했다. 정의는 헤더 파일에 있고 implmentation는 CPP 파일에 있습니다 :헤더 파일. 등
HEADER :
#ifndef POINT_H
#define POINT_H
class Point {
public:
Point(int x, int y);
int getX();
int getY();
private:
int x, y;
};
#endif
CPP
#include Point.h
Point::Point(int x=2, int y=2) {
this->x = x;
this->y = y;
}
int Point::getX() {
return x;
}
int Point::getY() {
return y;
}
이 컴파일되지 않고 나는 이유를 모르겠습니다. 또한, 다른 곳에서 점을 인스턴스화 할 때 main.cpp라고 말하면 맨 위에 #include, Point.h 만 있으면됩니까? 그렇다면 Point.cpp를 어떻게 알 수 있습니까?
(주)에는 point.h가 포함되어 있습니다. point.cpp는 프로젝트에 추가하면 자동으로 포함되는 파일입니다. – ultifinitus
인용 부호가 누락 된 것 같아요, #include "Point.h" –
'point.cpp'는'main.cpp'와 같은 컴파일 단위입니다. 그것들을 컴파일 할 때, 같은 헤더 파일을 포함하고있는'point' 구조가 무엇인지를 모두 알고있는 객체를 생성합니다. 두 개체를 연결하면 실행 파일이 생성됩니다. 당신은'main.h'를 컴파일하기위한 구현을 할 필요가 없다. 구조의 선언이 필요하다. – Benoit