临时对象
临时对象
1. 临时对象的概念
一些临时对象,是因为我们代码书写问题而产生的。统一称临时变量为临时对象
new delete 栈
2. 产生临时对象的情况和解决
3 种情况和解决方案
class CTempValue{
public:
int val1;
int val2;
public:
CTempValue(int v1 = 0, int v2 = 0);
CTempValue(const CTempValue& t) : val1(t.val1), val2(t.val2){ // 拷贝构造函数
cout << "调用了拷贝构造函数" << endl;
}
virtual ~CTempValue(){ // 析构函数
cout << "调用了析构函数" << endl;
}
public:
int Add(CTempValue tobj); // 普通函数
};
CTempValue:: CTempValue(int v1, int v2):val1(v1), val2(v2){
cout << "调用了构造函数" << endl;
cout << "val1 = " << val1 << endl;
cout << "val2 = " << val2 << endl;
}
CTempValue::Add(CTempValue tobj){
int temp = tobj.val1 + tobj.val2;
tobj.val1 = 1000; // 这里修改值对外界没有影响
return temp;
}
2.1 以传值的方式给函数传递参数【不建议,建议改成传引用的方式】
将 add 形参改为引用
CTempValue::Add(CTempValue& tobj){
int temp = tobj.val1 + tobj.val2;
tobj.val1 = 1000; // 这里修改值对外界没有影响
return temp;
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix