728x90
반응형
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | #include<iostream> using namespace std; class test{ public: int a, b; test(int a, int b) :a(a), b(b) {} void show(){ cout << a << ' ' << b << endl; } test operator+(const test &t){ test ret(a + t.a, b + t.b); return ret; } }; int main(){ test a(1, 2), b(3, 4); test c = a + b; c.show(); return 0; } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | #include<iostream> using namespace std; class test{ public: int a, b; test(int a, int b) :a(a), b(b) {} void show(){ cout << a << ' ' << b << endl; } friend test operator+(const test &t1, const test &t2); }; test operator+(const test &t1, const test &t2){ test ret(t1.a + t2.a, t1.b + t2.b); return ret; } int main(){ test a(1, 2), b(3, 4); test c = a + b; c.show(); return 0; } |
operator+(a,b)라고 써도 a+b와 결과가 같다.
두 코드의 결과는 위와 같다.
첫 번째 코드가 멤버 함수를 사용한 연산자 오버로딩이고 두 번째 코드가 전역 함수를 사용한 연산자 오버로딩이다.
우선순위는 전자가 후자보다 높다.
728x90
반응형
'프로그래밍 > C, C++' 카테고리의 다른 글
padding (2) | 2018.10.17 |
---|---|
C++에서 띄어쓰기 포함 한 줄 그대로 받기 (0) | 2018.10.14 |
Visual Studio 64bit inline asm (0) | 2018.08.23 |
VirtualAllocEx Error 487 (0) | 2018.01.25 |
openssl socket C/C++ example (0) | 2017.10.31 |
유닉스 crypt 함수 (0) | 2017.05.29 |
printf 덮어 쓰기 (0) | 2016.11.09 |
연산자 오버라이딩, sort, 생성자 (2) | 2015.06.07 |
C++ mysql 연동 (0) | 2014.09.23 |
IP 주소 정수 변환(IP to INT, INT to IP) (1) | 2014.07.03 |
댓글