永发信息网

c++的构造函数

答案:3  悬赏:60  手机版
解决时间 2021-04-24 17:13

在定义类对象r1,r2,然后把r1=r2;再改变r2中的值,为什么r1的值也改变了

最佳答案

在面向对象的编程语言中,=实际上是已经被重载过的。


在C++里面有个模板库,里面的很多运算符都是被重载过的,=也不例外


所以可以用一个对象直接初始化另一个对象,对C++而言就是调用了其默认


的拷贝构造函数,同构造函数一样,如果没有重新编写,那么就会采用默认构造函数


但是由于默认构造函数产生的对象值和赋值对象在同一区域,故而一般提倡自己编写,因为


当我们用指针来释放空间时避免释放错误。

全部回答

在你定义的类里重载一下“=”号运算符就不会出现这样的情况

如果该类里有static变量的话,所有对象都共享同样的一份static变量,你改变r2, r1里的该static变量也会改变

如果r1是r2的引用的话, 改变r2的值r1也会改变..

我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
DNF,如何快速赚到1个E,
人为什么要吃饭店
谁有女主是神的异世小说
怀孕后白带带血是怎么回事
怎么雅马哈训鹰125才跑85呢 ,我听很多人都说
赛尔号的精灵树怎么浇灌?
为什么上高中这么累??
立青粘到裤子并且干了,要怎么才能清洗掉
拳皇97风云再起出招表
我喜欢她,为她做了这些,这个时候要不要表白
大家都喜欢回家过年吗?有没有人不怎么想回家
送QB的网站是多少?
人真的需要缘分吗
花开无声的繁体字怎么写
红军大道/梅山湖路(路口)我想知道这个在什么
推荐资讯
东环不夜城这个地址在什么地方,我要处理点事
网名请求装饰 网名让爱随风
广东手机证券送流量?
现在那些网游 这台 可以玩的
反辐射的兜兜能洗吗
QQ校友怎么退出了班级里面的人还可以偷我菜啊
如果一直想尽办法想忘掉一个人却怎么也忘不了
为什么人在一起时间久了会烦?
仙剑3单机版的,九龙坡怎么过啊,不会,高手
新奥尔良烧烤我想知道这个在什么地方
街机游戏《电精》下载下来怎么耍不起?
炫舞我没有开G,为什么还是显示客户端被修改
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?