안녕하세요.
// 안녕하세요.
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& c1, const Cents& c2, Cents& 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로 함수 오버로딩하신거죠?
감사합니다.