• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    미해결

연산자 오버로딩 질문입니다

19.05.30 20:16 작성 조회수 165

1

선생님 C++ 을 오랜만에 다시 보고 있는데 이해가 안 되는 부분이 있습니다.

9.1 산술연산자 오버로딩  11분에 나옵니다.

using namespace std;
class Cents {
private:
 int m_cents;
public:
 Cents(int cents = 0)
 {
  m_cents = cents;
 }
 int getCents()const
 {
  return m_cents;
 }
 int& getCents()
 {
  return m_cents;
 } 
 Cents operator+(const Cents& c2)
 {
  return Cents(this->getCents() + c2.getCents()); 
 }
};
int main()
{
 Cents cents1(6);
 Cents cents2(8);
 cout << (cents1 +cents2 +Cents(5) + Cents(10)).getCents() << endl;
 return 0;
}

 

위에 주석 달아 놓은게 질문 입니다.

1. this->getCents()는 왜 int& getCents()함수로 가나요? 

2. c2.getCents()함수는 왜 int getCents()const 함수로 가나요?

답변 1

답변을 작성해보세요.

0

두 함수의 기능상 차이를 이해하시면 실마리가 풀립니다. 컴파일러가 어떻게 사용되는지를 보고 어떤 함수를 호출할지 결정합니다. 힌트를 드리자면 2번 질문은  Cents operator+(const Cents& c2)에서 c2가 const네요.

* 질문하시는 방법 참고해주세요. 해당 강의에서 질문을 올려주세요. 완전히 실행되는 전체 코드를 올려주세요.

https://blog.naver.com/atelierjpro/221547580916