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

2025-04-01 07:41:02
推荐回答(1个)
回答1:

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也会改变。