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

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

ㅌㅇ님의 프로필 이미지
ㅌㅇ

작성한 질문수

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

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

작성

·

220

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

 

ㅌㅇ님의 프로필 이미지
ㅌㅇ

작성한 질문수

질문하기