Typing diary

c++ 연산자중복 본문

C, C++

c++ 연산자중복

Jcon 2022. 8. 16. 15:22
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
#include <iostream>
using namespace std;
 
class ex
{
    int var1 = 0;
    int var2 = 0;
public:
    ex& operator +(ex& op1);  //이항 연산자 함수 선언 (연속적으로 연산가 작동하게 하기 위핸선 리턴 타입을 ex&와 같이 선언 해야함)
    ex operator ++();         //단항 전위 연산자 함수 선언 
    //ex operator ++(int x);    단항 후위 연산자 함수 선언
 
    friend ex& operator+(int op1, ex op2);  //friend를 이용한 연산자 함수 선언
};
 
//이항 연산자 함수 구현
ex& ex::operator+(ex& op1)   
{
    ex tmp;
    tmp.var1 = var1 + op1.var1;
    tmp.var2 = var2 + op1.var2;
    return tmp;
}
 
//단항 전위 연산자 함수 구현
ex ex::operator++()         
{
    var1++;
    var2++;
    return *this;
}
 
//friend를 이용한 연산자 함수 구현
ex& operator+(int op1, ex op2)
{
    ex tmp;
    tmp.var1 = op1 + op2.var1;
    tmp.var2 = op1 + op2.var2;
    return tmp;
}
 
int main()
{
    ex a ,b,c;
    c = a + b; //컴파일러가 a.+(b); 식으로 변형시킨다.
    c = a + b + c; //연속적으로 사용 가능 
}
cs

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

String의 작동원리(c++)  (0) 2022.08.17
void 포인터  (0) 2022.08.16
c++ static멤버  (0) 2022.08.16
명품 c++ programming 6장 8번  (0) 2022.08.16
명품 c++ programming 7장 Open Challenge  (0) 2022.08.16