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