HarrySun

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

 

对应c++拷贝方式,我倒是较熟悉。但是对应指针的拷贝,我有些迷糊,所有做了一个简单的程序测试一下。

 1 //object.h
2
3 #ifndef OBJECT_H_
4 #define OBJECT_H_
5
6 #include <iostream>
7
8 class object{
9 public:
10 object(){
11 std::cout << "object()" << std::endl;
12 }
13
14 object(const object&){
15 std::cout << "object(const object&)" << std::endl;
16 }
17
18 ~object(){
19 std::cout << "~object()" << std::endl;
20 }
21 };
22
23 #endif /* OBJECT_H_ */


main.cpp

 1 #include <iostream>
2 #include "object.h"
3
4 int main(int argc, char **argv) {
5 object obj1;
6 object obj2(obj1);
7 object obj3 = obj2;
8
9 std::cout << "---------------------" << std::endl;
10
11 object *pObj1 = new object();
12 object *pObj2(pObj1);
13
14 std::cout << "pObj1=" << pObj1 << std::endl;
15 std::cout << "pObj2=" << pObj2 << std::endl;
16
17 std::cout << "---------------------" << std::endl;
18
19 return 0;
20 }


输出结果:

 

经过测试我们可以发现:

 object *pObj1 = new object();
 object *pObj2(pObj1);

这只是一种简单的值(地址)的拷贝。现在,pObj1和pObj2指向同一个对象。

posted on 2011-12-29 23:00  HarrySun  阅读(232)  评论(0)    收藏  举报