C++:Struct XXX a = b是复制内容吗?

来源:百度知道 编辑:UC知道 时间:2024/05/12 15:23:00
想结构或者类,a = b(a,b不为指针)的话
是把b里的内容复制给a?
a = b后,
两者只是内容相同,任何一个修改内容不会影响另一个,对吗?
你说的意思我明白,在java里,a = b永远是指针共享地址
可以问题这里a和b都是变量,a = b后,怎么2个变量就变成指针了呢?
高手请指点下.

是内容复制.
又不是指针或引用,修改一个不会影响到另一个

直接等号赋值,只是浅拷贝。也就是不同的指针指向同一个内存区域,这样是比较危险的,应为程序有自己的析构函数,会自动释放自己开辟的空间,导致另一个指针无所指的情况。这是无关乎指针的问题的。
可以重载=操作符,如struct *p=new struct XXX;p->………………
就可以了,这样就是自己开辟了一个内存空间,然后把里面的每个变量赋值,使得和原来的内存中的变量对应相等。

我怎么觉得像把指向b的指针付给a呢~
你可以自己试一下嘛~
改变a,再查看b,如果b的值也改了就是想我说的那样了~