728x90
#include <iostream>
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 를 오버로딩하는 것 입니다.

 

friend std::ostream& operator << (std::ostream &out, const Cents &cents)
{
out << cents.m_cents;
return out;
}

 

class 내부에서 정의 했기 때문에 friend를 사용했고 cents의 값을 바꾸지 않을 것이기 때문에 const를 사용했습니다.

 

 

int main()
{
Cents cents1(8);
Cents cents2(7);
cout << cents1 << endl;
return 0;
}

 

- 연산자와 ! 연산자를 오버로딩 해보겠습니다.

 

Cents operator - () const
{
return Cents(-m_cents);
}
bool operator ! () const
{
return (m_cents == 0) ? true : false;
}
int main()
{
Cents cents1(8);
Cents cents2(0);
auto temp = !cents1;
cout << temp << endl;
cout << -cents1 << endl;
cout << -Cents(-20) << endl;
return 0;
}

 

728x90