강의

멘토링

커뮤니티

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

khb4435님의 프로필 이미지
khb4435

작성한 질문수

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

9.5 증감 연산자 오버로딩 하기

반환형차이

작성

·

229

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

위 링크를 보시면 이해가 되실겁니다!

khb4435님의 프로필 이미지
khb4435

작성한 질문수

질문하기