인프런 커뮤니티 질문&답변
friend bool operator < ()에서 질문 있습니다.
작성
·
271
0
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; }
friend bool operator < (const Cents &c1, const Cents &c2)
{
return c1.m_cents < c2.m_cents;
}
friend bool operator != (const Cents &c1, const Cents &c2)
{
return bool (c1.m_cents != c2.m_cents);
}
friend std::ostream& operator << (std::ostream &out, const Cents ¢s)
{
out << cents.m_cents;
return out;
}
};
강의에서 이와 같이 구현을 합니다. 여기서 질문이 있습니다. bool이 붙은 friend 함수들은 Cents class의 멤버 함수로 바꿀 수가 없나요? 두가지 시도를 했는데 오류가 났습니다.
1. Cents bool operator <()
2. bool Cents operator <()
퀴즈
사용자 정의 타입에 대해 연산자 오버로딩을 하는 주된 목적은 무엇일까요?
코드 실행 속도를 빠르게 하기 위해
사용자 정의 타입을 내장 타입처럼 자연스럽게 사용하기 위해
객체의 메모리 관리를 자동화하기 위해
클래스의 상속 관계를 정의하기 위해






앗... 제가 끝까지 안적어서 혼동을 드린 것 같습니다.
1. Cents bool operator <(const Cents &c1, const Cents &c2)
2. bool Cents operator <(const Cents &c1, const Cents &c2)
이 부분에서 () 안에는 매개변수가 들어있는 상황입니다. 생략을 해버려서 혼동을 드렸네요.
다시 질문드리겠습니다. ㅠㅠ
bool이 붙은 friend 함수들은 Cents class의 멤버 함수로 바꿀 수가 없나요?