关于C++的复制构造函数问题。
在看C++的书籍时,稳重提到一句:复制类的对象时,将复制其指针成员,但是不复制指针指向的缓冲区。求大神解释:1、什么是指针指向的缓冲区啊?不懂2、复制类的对象的意思是用一...
在看C++的书籍时,稳重提到一句:复制类的对象时,将复制其指针成员,但是不复制指针指向的缓冲区。求大神解释:
1、什么是指针指向的缓冲区啊?不懂
2、复制类的对象的意思是用一个对象给另一个对象赋值吗?
纯新,希望各位解释。 展开
1、什么是指针指向的缓冲区啊?不懂
2、复制类的对象的意思是用一个对象给另一个对象赋值吗?
纯新,希望各位解释。 展开
展开全部
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也会改变。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询