在定义类对象r1,r2,然后把r1=r2;再改变r2中的值,为什么r1的值也改变了
c++的构造函数
答案:3 悬赏:60 手机版
解决时间 2021-04-24 17:13
- 提问者网友:疯子也有疯子的情调
- 2021-04-24 12:30
最佳答案
- 五星知识达人网友:野味小生
- 2021-04-24 13:17
在面向对象的编程语言中,=实际上是已经被重载过的。
在C++里面有个模板库,里面的很多运算符都是被重载过的,=也不例外
所以可以用一个对象直接初始化另一个对象,对C++而言就是调用了其默认
的拷贝构造函数,同构造函数一样,如果没有重新编写,那么就会采用默认构造函数
但是由于默认构造函数产生的对象值和赋值对象在同一区域,故而一般提倡自己编写,因为
当我们用指针来释放空间时避免释放错误。
全部回答
- 1楼网友:过活
- 2021-04-24 14:52
在你定义的类里重载一下“=”号运算符就不会出现这样的情况
- 2楼网友:长青诗
- 2021-04-24 14:46
如果该类里有static变量的话,所有对象都共享同样的一份static变量,你改变r2, r1里的该static变量也会改变
如果r1是r2的引用的话, 改变r2的值r1也会改变..
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯