-
카테고리
-
세부 분야
프로그래밍 언어
-
해결 여부
미해결
9.2강 << 연산자 오버로딩 강의 질문입니다.
22.07.04 15:21 작성 조회수 174
0
다음은 9.2강에서 나오는 코드입니다.
#include <iostream>
using namespace std;
class Point
{
private:
double m_x, m_y, m_z;
public:
Point(double x = 0.0, double y = 0.0, double z = 0.0)
: m_x(x), m_y(y), m_z(z)
{}
double getX() { return m_x; }
double getY() { return m_y; }
double getZ() { return m_z; }
// friend 전역 함수
friend std::ostream& operator << (std::ostream& out, const Point& point)
{
out << "( " << point.m_x << " " << point.m_y << " " << point.m_z << " )";
return out;
}
};
int main()
{
Point p1(0.0, 0.1, 0.2), p2(3.4, 1.5, 2.0);
cout << p1 << " " << p2 << endl;
return 0;
}
저는 연산자 오버로딩 함수가 매개변수로 const Point& point 를 받기 때문이라고 생각했지만
const를 지워도 같은 오류가 나옵니다.
오류와 별개로 코드를 실행하면 정상적으로 작동합니다.
질문 : 비주얼스튜디오 2022에서 위와 같은 오류가 뜨는데 원인을 모르겠습니다.
답변을 작성해보세요.
0
강민철
2022.07.05
string 을 cout하기 위해서는 string 라이브러리를 포함해야 합니다.
기본적으로 iostream 내부에 string 헤더파일이 정의되어 있으나,
다양한 이유로 찾지 못하는 경우도 있습니다.
질문자님의 상황이 그런 상황 같습니다.
상단에 #include <string> 을 추가해보세요.
참고
https://drawingprogrammer.tistory.com/17
https://jeongupark-study-house.tistory.com/5
https://www.dogdrip.net/234537116
답변 1