인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

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

호두님의 프로필 이미지
호두

작성한 질문수

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

9.1 산술 연산자 오버로딩 하기

[01:34] 결과값을 받는 파라미터 c_out에서 멤버변수 m.cents접근하려고 하는 부분

해결된 질문

작성

·

232

2

안녕하세요.
// 안녕하세요.
9_1.cpp : This file contains the 'main' function. Program execution begins and ends there.
//

#include <iostream>

using namespace std;

class Cents
{
private:
    int m_cents;

public:
    Cents(const int& cents_in)
        : m_cents(cents_in)
    {
    }
    int getCents() const
    {
        return m_cents;
    }
    int& getCents()
    {
        return m_cents;
    }
};

void add(const Cents& c1const Cents& c2Cents& c_out)
{
    c_out.getCents() = c1.getCents() + c2.getCents();
}
int main()
{
    Cents cents1(6);
    Cents cents2(9);
    Cents cents3(0);

    add(cents1, cents2, cents3);

    cout << cents3.getCents() << endl;

    return 0;
}


add 함수에서 결과값을 리턴할 파라미터로 c_out객체를 받을 때는 l-value로 받아야하는 거잖아요?

 여기서 c_out으로 m_cents에 접근이 안되니까 getCents()를 호출하더라도 

c1.getCents() + c2.getCents() 결과 값을 저장할 수 없어서 

int getCents() const
{
    return m_cents;
}
int& getCents()
{
    return m_cents;
}

const로 함수 오버로딩하신거죠? 

감사합니다.

답변 2

1

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

네 값이 정확히 들어가는지 꼭 확인해보세요.

0

호두님의 프로필 이미지
호두
질문자

감사합니다.

호두님의 프로필 이미지
호두

작성한 질문수

질문하기