강의

멘토링

커뮤니티

인프런 커뮤니티 질문&답변

pck923님의 프로필 이미지
pck923

작성한 질문수

홍정모의 따라하며 배우는 C++

9.2강 << 연산자 오버로딩 강의 질문입니다.

작성

·

263

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에서 위와 같은 오류가 뜨는데 원인을 모르겠습니다.

 

답변 1

0

string 을 cout하기 위해서는 string 라이브러리를 포함해야 합니다.

기본적으로 iostream 내부에 string 헤더파일이 정의되어 있으나,

다양한 이유로 찾지 못하는 경우도 있습니다.

질문자님의 상황이 그런 상황 같습니다.

상단에 #include <string> 을 추가해보세요.

 

참고

https://drawingprogrammer.tistory.com/17

https://jeongupark-study-house.tistory.com/5

https://www.dogdrip.net/234537116

 

pck923님의 프로필 이미지
pck923

작성한 질문수

질문하기