1, #include<iostream>
2 2 #include<string>
3 3 using namespace std;
4 4 class test{
5 5 int i;
6 6 public:
7 7 test(int i){
8 8 cout << "test(int i)" << i << endl;
9 9 this->i = i;
10 10 }
11 11 int get(){
12 12 return i;
13 13 }
14 14 ~test(){}
15 15 };
16 16 class pointer{
17 17 test* mp;
18 18 public:
19 19 pointer(test*p = NULL){
20 20 mp = p;//成员变量赋值
21 21 }
22 22 test* operator->(){
23 23 return mp;
24 24 }
25 25 test& operator*(){
26 26 return *mp;
27 27 }
28 28 ~pointer(){
29 29 cout << "~pointer()" << endl;
30 30 delete mp;
31 31 }
32 32 };
33 33 int main(){
34 34 for(int i=0;i<5;i++){
35 35 pointer p = new test(i);
36 36 cout << p->get() << endl;
37 37 }
38 38 return 0;
39 39 }
40 //结果
41 test(int i)0
42 0
43 ~pointer()
44 test(int i)1
45 1
46 ~pointer()
47 test(int i)2
48 2
49 ~pointer()
50 test(int i)3
51 3
52 ~pointer()
53 test(int i)4
54 4
55 ~pointer()