본문 바로가기

Programming/[C++]

[C++] 깊은 복사 연산자

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
#include <iostream>
using namespace std;
 
class A {
    int *p;
public:
    A() {
        p = new int;
        *= 0;
    }
    ~A() { delete p; }
    A(const A &aa) {
        p = new int;
        *= *aa.p;
    }
    void setA(int data) { *= data; }
    int getA()const { return *p; }
    A& operator= (const A &aa) {
        if (this == &aa) { return *this; }
        delete p;
        p = new int;
        *= *aa.p;
        return *this;
    }
};
void main() {
    A aa;
    A bb;
    aa.setA(90);
    cout << aa.getA() << endl;
    cout << bb.getA() << endl;
 
    bb = aa;
 
    cout << aa.getA() << endl;
    cout << bb.getA() << endl;
}
cs

 

'Programming > [C++]' 카테고리의 다른 글

[C++] 파일 입출력  (0) 2018.03.21
[C++] 소멸자  (0) 2018.03.21
[C++] 기초  (0) 2018.03.21
[C++] cout object(씨아웃 오브젝트)  (0) 2018.03.21
[C++] 복사 소멸자  (0) 2018.03.21