나는 웹에서 그것에 대해 아무것도 찾을 수 없기 때문에 이것이 n00b 질문이라고 생각합니다 ...
다음은 Point 클래스입니다.
class Point {
public:
Point();
Point(double x, double y);
double getX() const;
double getY() const;
void setX(double);
void setY(double);
friend std::ostream& operator<<(std::ostream& os, const Point& obj);
private:
double x;
double y;
};
다음은 operator << 함수의 구현입니다.
inline std::ostream& operator<<(std::ostream& os, const Point& obj) {
os << "(" << obj.getX() << "," << obj.getY() << ")";
return os;
}
이제 주요 기능에 Point *p;
... 어떻게 인쇄 할 수 std::cout
있습니까?
그래서 마침내 문제가 어디인지 알아 냈습니다.
모든 튜토리얼, 서적 및 심지어 C ++ 참조도 inline
컴파일러 가 지시문을 무시할 수 있다는 데 동의하지만 inline
, 오버로드 된 함수의 구현에서 키워드를 제거하면 모든 것이 작동합니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다