강의

멘토링

로드맵

Inflearn brand logo image

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

dot님의 프로필 이미지
dot

작성한 질문수

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

4.8 영역 제한 열거형 (열거형 클래스)

(수정)class 여부에 따라 출력차이가 발생합니다

작성

·

200

3

include

enum color

{

COLOR_BLACK, // 0

};

int main()

{

using namespace std;

color paint =COLOR_BLACK;

cout << paint << endl;  // '0'출력

return 0;

}

위에 코드는 클래스를 사용하기전 코드입니다.

cout을 통해 출력이 잘됩니다.

아래 코드는 클래스를 사용한 코드인데

cout을 통해 출력이 안됩니다

include

enum class color

{

COLOR_BLACK, // 0

};

int main()

{

using namespace std;

color paint = color::COLOR_BLACK;

cout << paint << endl;  // 출력이 안되고, 피연사자와 일치하는 <<이 없다고 출력됨

return 0;

}

즉 class를 사용하면 cout을 통해 출력이 안되는건지, 제가 실수하는게 있는건지가 궁금합니다

답변 1

6

홍정모님의 프로필 이미지
홍정모
지식공유자

아, 그러시군요! 클래스를 이용해서 만든 새로운 자료형은 cout을 통해서 출력이 안된다는 얘기시지요? 사용자 정의 자료형이라는 개념과 만나셨네요. 기본 자료형이 아닌 사용자 정의형은 사용자가 출력을 어떻게 할지도 지정해줘야 합니다. 뒤에 operator overloading 연산자 오버로딩 부분에 output operator << 오버로딩하는 방법이 나옵니다. 클래스의 멤버 변수가 기본 자료형일 경우에는 직접 출력하는 방법도 있습니다.

dot님의 프로필 이미지
dot

작성한 질문수

질문하기