홈
|
지역로그
|
태그
|
미디어로그
|
방명록
|
관리자
|
글쓰기
Welcome
'프로그래밍 언어/CPP'에 해당되는 글 1건
2014.07.11
Operator overloading
Operator overloading
프로그래밍 언어/CPP
2014. 7. 11. 01:25
Class에 +,- 등의 연산자를 쓸 수 있게 하는 문법
#include <iostream> using namespace std; class overloading { public: int x; int y; overloading(int _x = 0, int _y = 0):x(_x),y(_y){} void Print() const { std::cout << x << ",\t" << y << std::endl;} overloading operator+(overloading& a) { return overloading(x+a.x, y+a.y); } overloading operator+(int a) { return overloading(x+a, y+a); } bool operator==(const overloading& a) { return( (x==a.x)&&(y==a.y) ); } // ++this const overloading& operator++() { x++; y++; return *this; } // this++ const overloading& operator++(int) { overloading temp(x, y); x++; y++; return temp; } // this() void operator()() { Print(); } // this[index] int operator[](int idx) { if( idx == 0) {std::cout << " x : " << x << std::endl;return x;} else std::cout << " y : " << y << std::endl; return y; } // (int)this operator int() { cout << "type int" << endl; return x;} }; // Smart overloading class overloadingPtr { overloading *ptr; public: explicit overloadingPtr(overloading* p):ptr(p){} ~overloadingPtr() { if( ptr != NULL) delete ptr; } overloading* operator->() { return ptr; } overloading& operator*() { return *ptr; } }; // 전역 오버로딩 const overloading operator*(const overloading& a, const overloading& b) { int x; int y; x = a.x*b.x; y = a.y*b.y; return overloading(x,y); } const overloading operator*(const int& a, const overloading& b) { int x; int y; x = a*b.x; y = a*b.y; return overloading(x,y); } int main_Overloading() { overloading a(12,13), b(15,16); a.Print(); b.Print(); std::cout << "--------------" << std::endl; a.operator+(b); (a+b).Print(); operator*(a,b); (a*b).Print(); a.operator+(10); (a+10).Print(); operator*(10,a); (10*a).Print(); a++; a.Print(); ++a; a.Print(); if( a==b) a.Print(); else std::cout << "a, b different" << std::endl; // operator() a(); // operator[] a[0]; a[1]; // Error // overloadingPtr p1 = new overloading(1,2); overloadingPtr p1(new overloading(1,2)); p1->Print(); (*p1).Print(); (int)a; return 0; }
공유하기
게시글 관리
Welcome
저작자표시
비영리
변경금지
Posted by
crownog
,
1
공부도하고 리뷰도하는 개인 블로그
crownog
카테고리
My story
(44)
프로젝트
(0)
잡담
(0)
게임
(2)
웹프로그래밍
(0)
PHP
(0)
JavaScript
(0)
프로그래밍 언어
(14)
Action Script 2.0
(6)
C#
(1)
CPP
(1)
CPP STL
(0)
AI
(0)
Boost
(3)
Node JS
(2)
OpenCL
(0)
알고리즘
(1)
라이브러리
(20)
OpenGL
(18)
Direct9
(0)
DirectX11
(0)
Tcp IP
(1)
XNA
(1)
그외
(0)
개발툴
(1)
Unity
(1)
리뷰
(5)
사진
(0)
버그 - 문제점
(0)
최근글
최근댓글
최근 트래백
글보관함
total :
today :
yesterday :
티스토리 가입하기!
진행중인 일정 및 프로젝트
달력
«
2025/01
»
일
월
화
수
목
금
토
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
태그목록
텍스쳐
C9
Pipeline
XNA
게임
Action Script 2.0
Sorting
MovieClip
OpenGL
updateAfterEvent
플래시
프로그래밍
texture
Selection Sort
아이온
GLUT
Bubble Sort
Insertion Sort
State Variable
링크
Game Story of crown.
아래 아이콘을 누르면 저와 대화할 수 있어요~(단 제가 온라인 일 때만)
티스토리툴바