인프런 커뮤니티 질문&답변
반환형차이
작성
·
230
0
- 먼저 유사한 질문이 있었는지 검색해보세요.
- 서로 예의를 지키며 존중하는 문화를 만들어가요.
- 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.#include <iostream>
using namespace std;
class Digit{
private:
int m_digit;
public:
Digit(const int& digit=0):m_digit(digit){}
friend ostream& operator<< (ostream&out,const Digit &d){
out<<d.m_digit;
return out;
}
//prefix
Digit& operator++ (){
++m_digit;
return *this;
}
//postfix
Digit operator++ (int){
Digit temp(m_digit);
++(*this);
return temp;
}
보이는 바와같이 postfix와 prefix에서 반환형이 참조형이랑 일반 복사로 나뉜 논리적 이유가 있나요?
};
int main(int argc, const char * argv[]) {
Digit d(5);
cout<<++d<<endl;
return 0;
}
퀴즈
사용자 정의 타입에 대해 연산자 오버로딩을 하는 주된 목적은 무엇일까요?
코드 실행 속도를 빠르게 하기 위해
사용자 정의 타입을 내장 타입처럼 자연스럽게 사용하기 위해
객체의 메모리 관리를 자동화하기 위해
클래스의 상속 관계를 정의하기 위해
답변 1
3
안녕하세요.
prefix 연산자의 리턴 타입은 L-value 이고 postfix 연산자의 리턴 타입은 R-value 이기 때문입니다.
https://www.inflearn.com/questions/108838
위 링크를 보시면 이해가 되실겁니다!





