오류를 피할 수있는 방법을 알려주세요. 미리 감사드립니다.오류 : 생성자의 다중 정의
파일 이름 : point.hh
#ifndef POINT_H
#define POINT_H
class Point{
private:
int x;
int y;
public:
Point();
};
#endif
파일 이름 : point.cc
#include "point.hh"
#include <iostream>
using namespace std;
Point::Point()
{
x=0;
y=0;
cout<<"x="<<x;
cout<<"y="<<y;
}
파일 이름 : main.cc
#include"point.cc"
int main()
{
Point p; // calls our default constructor
}
어떻게하면 컴파일러의 관점에서 볼 수 있습니까? 나는 당신이 g ++ main.cc point.cc와 cpp main.cc 그리고 cpp point.cc로 컴파일하려고 함을 의미한다. #includes에 대한 정의가 모두 포함되어 있는데, 이것이 근본적인 이유이다, 맞습니까? –
완벽! 고마워 .. – abc
@Umut Tabak : 네가 제대로 할 수 있을지 모르겠다. 그렇다. 그게 이유 야. 그러나 OP가'point.cc '에 대해 생성 된 객체 파일을 추가하지 않으면 링크 프로세스는 성공할 것입니다.이 경우'Point :: Point()'에 대한 하나의 정의 만 있기 때문입니다. 이것은 여전히 정말로 진절머리 나는 점에 유의하십시오. – ereOn