인프런 커뮤니티 질문&답변
입출력 연산자 작동 원리가 알고싶습니다
작성
·
261
0
선생님이 설명해주신 입출력 연산자가
istream&operator>>(istream&in, Point&point)
{
}
이런식으로 생겼는데 istream&in 에서는 도대체 무얼 받는건가요? parameter가 있으면 무언가를 받아야하는데
cin>>p1>>p2 이런식으로 parameter 에 아무것도 안보네도 작동이 잘되서 parameter 에서 무엇을 어떻게 받는지 알려주시면 감사하겠습니다.
퀴즈
66%나 틀려요. 한번 도전해보세요!
사용자 정의 타입에 대해 연산자 오버로딩을 하는 주된 목적은 무엇일까요?
코드 실행 속도를 빠르게 하기 위해
사용자 정의 타입을 내장 타입처럼 자연스럽게 사용하기 위해
객체의 메모리 관리를 자동화하기 위해
클래스의 상속 관계를 정의하기 위해
답변 1
4
cin >> p1;
여기서 cin 이 istream&in 자리에 들어가는거구요! (cin 은 엄연히 "객체" 입니다. istream 클래스에서 찍어낸 객체라고 생각하시면 돼요! 그러니 파라미터로 넘길 수 있어요!)
p1 이 Point&point 자리에 들어가는 것입니다.
이항 연산자라면 보통 "피연산자 연산자 피연산자" 이런 구조잖아요? 3 + 5 처럼요 !
이때 연산자 오버로딩을 한다면 연산자 왼쪽에 있는게 첫번째 파라미터, 연산자 오른쪽에 있는게 두번째 파라미터로 들어간다고 생각하시면 됩니다. :)





