`
gaofen100
  • 浏览: 1200714 次
文章分类
社区版块
存档分类
最新评论

c++ 关于对象浅复制的一些疑问,希望懂得大虾给我解释解释~~

 
阅读更多

就是在复制构造函数中,如果没用new 分配内存时就是浅复制,也就是复制过后的对象和原来的对象会共享一段内存!

Student1(int n,char *p)
{
no=n;
pname=new char[10];
strcpy(pname,p);
}
Student1(Student1&s)
{
no=s.no;
pname=s.pname;//未用new重新分配内存

}

最后分别输出两个对象中no和pname的地址:


pname:3280936
no:0x0012FF40

pname:3280936
no:0x0012FF38
Press any key to continue

这个pname的地址相同我可以理解,以为复制构造函数中的pname没有动态的分配内存,但是no这个成员也没有给他分配啊,为什么他们的地址不一样?

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics