关于C++的复制构造函数问题。

在看C++的书籍时,稳重提到一句:复制类的对象时,将复制其指针成员,但是不复制指针指向的缓冲区。求大神解释:1、什么是指针指向的缓冲区啊?不懂2、复制类的对象的意思是用一... 在看C++的书籍时,稳重提到一句:复制类的对象时,将复制其指针成员,但是不复制指针指向的缓冲区。求大神解释:
1、什么是指针指向的缓冲区啊?不懂
2、复制类的对象的意思是用一个对象给另一个对象赋值吗?
纯新,希望各位解释。
展开
 我来答
pardream941026
2016-06-17 · TA获得超过8217个赞
知道大有可为答主
回答量:4602
采纳率:89%
帮助的人:1340万
展开全部

1、什么是指针指向的缓冲区啊?  --就是指向的具体内容的地址。

 比如:
   char a [200];
   char *p;
   p=a; //p指向了a,实际上就是一块连续的存储区域,可以用来保存数据(类型不一定是char)。

但是不复制指针指向的缓冲区,这句话有点欠妥,指针指向的不一定是缓冲区,也可能是某个对象。

2、复制类的对象的意思是用一个对象给另一个对象赋值吗? 对

比如:Integer a,  b;
a = b; 即是对象赋值,这里用Integer是比较简单的类型,复杂类型也同样操作。

整体上,这句话是告诉你,对象的复制,是不复制指针对象的内容的。
举例:
class A {
  int a, b, c;
  char *p;
  ...};
  
  A a1, a2;
  char a[200]; strcpy(a, "This is a test");
  a1.a=1;  a1.b=2;  a1.c=3; a1.p = a;
  a2 = a1;
  那么复制的操作是a2.a=a1.a; a2.b=a1.b;a2.c=a1.c; 
  a2.p=a1.p; //注意这里,只是复制了指针的地址,并没有复制指针的内容。
       //所以a2.p与a1.p指向了同一个地址a,a1改变p的内容的话,a2也会改变。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式