인프런 커뮤니티 질문&답변
반환형차이
작성
·
229
0
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!
- 먼저 유사한 질문이 있었는지 검색해보세요.
- 서로 예의를 지키며 존중하는 문화를 만들어가요.
- 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.#include <iostream>
- 먼저 유사한 질문이 있었는지 검색해보세요.
- 서로 예의를 지키며 존중하는 문화를 만들어가요.
- 잠깐! 인프런 서비스 운영 관련 문의는 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
위 링크를 보시면 이해가 되실겁니다!





