반응형
//************************************************
// 연산자 오버 로딩 !! !!
//   -  하나의 연산자가 여려가지 용도로 사용되게 하는것 !! 
//************************************************
// ex) 
// << :  비트 시프트 연산자 !! 
#include 
using namespace std;

class MyCout
{	
	// << :연산자 오버로딩 함수를 추가 !! 
	// 1) 멤버 함수 연산자 오버로딩 !! 
public:
	MyCout()
	{	static int cnt = 0;
		cout << ++cnt << endl; 
	}
	MyCout( const  MyCout &  c  )
	{
		cout << "xxxxx" << endl;
	}

	MyCout & operator<<( int x )
	{
		printf("%d", x);
		return (*this); 
	}
	MyCout &   operator<<(char * str)
	{
		printf(str);
		return (*this); 
	}
	MyCout &  operator<<( double d) 
	{
		printf("%g", d);
		return (*this); 
	}
	MyCout &  operator<<( void * p) 
	{
		printf("\n");
		return (*this); 
	}
};
// Cout객체 전역 변수 선언 !! 
MyCout  Cout; 

void main()
{	
	Cout <<  100  << "도선아" << 3.14 ; 




//	 cout << 100  << endl; 
//	cout.operator<<("xxxx");
	//연산자 오버로딩은 연산자를 이름으로 갖는 함수의 호출이다 !! 
}

'C, C++' 카테고리의 다른 글

[C++] () 연산자 오버로딩 !!  (0) 2014.11.18
[C++] 전역 함수를 이용한 연산자 오버로딩  (0) 2014.11.18
[C++] 다형성  (0) 2014.11.18
[C++] 상속 이란? 이해, 생성, 소멸  (0) 2014.11.18
[C++] this 이해  (0) 2014.11.18

+ Recent posts