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
48
49
50
51
52
53
54
55
56
|
#include <iostream>
using namespace std;
class A {
int a;
public:
A(int a = 1000) { this->a = a; }
void setA(int a) { this->a = a; }
const int getA() { return a; }
friend ostream& operator<<(ostream &cout, const A &aa); //직접 접근 불가해서 friend로 지정
friend istream& operator>>(istream &cin, A &aa); //값을 읽기만 할 때 const로 지정
//friend int operator+(const A &aa, const A &bb);
A& operator=(const A &aa) {
a = aa.a;
return *this;
}
A operator+(const A &aa) {
A tmp; //tmp는 함수가 끝나면 사라짐
tmp.a = a + aa.a;
return tmp;
}
};
/*
int operator+(const A &aa, const A &bb) {
return aa.a + bb.a;
}
*/
ostream& operator<<(ostream &cout, const A &aa) {
cout << aa.a;
return cout;
}
istream& operator>>(istream &cout, A &bb) {
cin >> bb.a;
return cin;
}
void main() {
A aa;
A bb;
A cc;
cin >> aa >> bb;
cc = aa + bb; //입력을 하고 대입
//내부 - cc.operator=(aa.operator+(bb))
//외부 - operator=(cc, operator+(aa, bb))
cout << aa << endl;
cout << bb << endl;
cout << cc << endl;
}
|
cs |
'Programming > [C++]' 카테고리의 다른 글
[C++] 깊은 복사 연산자 (0) | 2018.03.21 |
---|---|
[C++] 기초 (0) | 2018.03.21 |
[C++] 복사 소멸자 (0) | 2018.03.21 |
[C++] 복사 생성자 (0) | 2018.03.21 |
[C++] 생성자 함수 (0) | 2018.03.21 |