반응형

하이염

한국인을 위한 코드 미리보기부터 가겠습니다.

 

#include <iostream>

class Complex
{
private:
	int real;
	int image;
public:
	Complex(int r = 0, int i = 0) : real(r), image(i) {}
	~Complex() = default;

	Complex operator+(const Complex& _val)
	{
		return Complex(real + _val.real, image + _val.image);
	}
	Complex operator-(const Complex& _val)
	{
		return Complex(real - _val.real, image - _val.image);
	}
	Complex operator++()
	{
		return Complex(++real, ++image);
	}
	Complex operator++(int)
	{
		return Complex (real++, image++);
	}
	friend std::ostream& operator<< (std::ostream& _os, const Complex& _class);
};

std::ostream& operator<< (std::ostream& _os, const Complex& _class)
{
	_os << _class.real << " + " << _class.image << "i" << '\n';
	return _os; // 뒤로 연계할 수 있도록 cout을 계속 연결해준다.
}


int main()
{
	Complex x(10, 20), y(20,40);
	Complex z;

	std::cout << x;
	std::cout << y;

	std::cout << x++;
	std::cout << ++x;

	z = x + y;
	std::cout << z;

	z = y - x;
	std::cout << z;
}

 

ㅁㅊ 클래스끼리 더하기 뺴기를 할 수 있다니 ㅋㅋ ㄷㄷ

 

operator 연산자라는건 쉽게말하면 연산자의 역할을 직접 정해줄 수 있게 해주는 고마운 애다.

 

반응형

+ Recent posts