问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

这个C++源程序,为什么在不同的IDE上调试结果不同?

发布网友 发布时间:2024-09-26 19:58

我来回答

1个回答

热心网友 时间:2024-12-02 14:06

你的动态分配有问题,主要是错在深拷贝的构造函数和重载的赋值运算符上了,不同环境下对这些错误容忍度不同,以下是改了的:
#include<iostream>
using namespace std;

class List {
private:
double *node;
int *size;
public:
List() { node=new double(0); size=new int(0); }
List(double *x)
{
node = new double(*x);
size=new int(0);
}
List(const List &x) {
cout << "拷贝构造函数" << endl;
node=new double(*x.node);
size=new int(*x.size);
}
~List() {
cout << "析构函数" << endl;
delete node;
delete size;
}
void output() const {
cout << "node = " << *node << "\tsize = " << *size << endl;
cout << "adress " << (void*)node << "\taddress " << (void*)size << endl;
}
List operator = (const List &x) {
//*node=*x.node;
//*size=*x.size;
delete node;
delete size;
node = new double(*x.node);
size = new int(*x.size);
return *this;
}
};

int main() {
double a=9;
List la(&a),lb;
la.output();
lb.output();
cout << "即将调用拷贝构造函数" << endl;
lb=la;
cout << "已调用拷贝构造函数" << endl;
la.output();
lb.output();
return 0;
}追问谢谢啊,我把带有double*形参的构造函数改了一下就可以了,能请问一下吗?为什么在重载赋值运算符的时候还要重新申请内存呢?不申请不是也可以吗?

追答不申请直接赋值的话,被赋值的对象原先的空间就丢失了,就是所谓的内存泄漏,并且此时,由于两个指针指向同一块空间,析构时会产生释放两次的错误,也许你的运行环境比较容忍这个错误没有报错

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
显卡降价矿难了!分享几个检测矿卡的实用软件 怎么分辨二手显卡刷bios 下文教你 怎么识别矿卡 鉴别矿卡的方法介绍 怎么设置小度在家回家视频通话? 贵阳砂岩雕塑厂有哪些 西安市长安二中附近有老年公寓没 来西安这么久了第一次租到性价比高的房子,松鼠公寓良心推荐_西安... 陕西省自强中等专业学校2024年学费多少 宝鸡市区有什么比较好的楼盘 乔安如何远程监控 非师范专业,设计类研究生,考到高中美术教师资格证,能考编制吗?一... 人机共融时代,节卡机器人如何持续“点亮智慧火花”? 节卡机器人如何通过元宇宙实践创新并推动协作机器人在市场上的应用... 广州与珠海哪个好 刚刚两个人说好明天一起去离婚资料都准备好了又舍不得怎么办? 求问这张图的出处!!!急! 工长君是谁? 工地工长是什么意思? lumia920通话时听筒有杂音怎么破? 诺基亚920打电话别人听不到声音送售后维修需要多少钱 诺基亚920打电话必须开免提对方才可以听清楚重置手机也无法解决_百度知 ... 新入手的诺基亚920,发现对方听不清我的声音,打开扬声器后对方才听清... 您好,请问您的诺基亚920接电话对方听不到声音的情况最后是怎么解决的... 亚瑟·伊文思发现和命名线性文字 诺基亚lumia920,通话时对方听不到我的声音,只有免提和插耳机时才有声 ... lumia920 打电话的时候对方听不清(如果很大声说能听清一点点),用免提... 第八章:线形文字B:一种专用于记账的古老文字 诺基亚920声音朦朦胧胧的怎么回事 长款风衣如何搭配才能穿出高级感? 胤禵的拼音怎么拼? 微信与手机解绑后还可以通过微信查找到原来用于注册微信号的手机号码吗... word标尺格式乱了怎么改正word标尺格式乱了怎么改正回来 在word文档里.要求上下左右留出2.5cm,请问怎么设置.右边和上边的标尺我... ...微信号绑定了,注册的微信能查到注册的手机号吗? 微信号被解绑后可以找回吗? 微信号解绑手机号码后还能使用吗? 我新注册的微信号码,把以前的绑定手机解绑了原来通讯录的还能找到我吗... 平时如何缓解痛经?哪些方法可以缓解姨妈痛? 吃不完的螃蟹可以放冰箱吗 今天蒸了几只螃蟹,没吃完!剩下得放在冰箱里准备明天热下吃!这样不会... 打篮球自带拉仇恨属性怎么办? 我是一名初一女生,我爱上了另一个女生,她爱打篮球,我看见她和别人玩我... 作为篮球队队长该不该去虐虐说我打篮球没技术的菜鸟 ...东西(衣服和书等约40KG) 从贵阳到苏州,请问大概价格多少?_百度... 我在贵阳,大四毕业想托运东西回家,选择哪种方式最好? ...1,This is my computer game.(改为一般疑问句) 2,Those are jim's... 求作业答案:句型转换。 1.This 我的索尼lt26ii买的一个月不到就感觉特别卡 这算不算正常 而且不管是用... LT26I 已经ROOT 用360手机加速清理内存过一段时间有的软件就会自动启动... 索尼lt26i的root问题机子行货 root先用360手机助手不成功,后用腾讯管家...