Yuan-w 2015-05-07 05:58 采纳率: 0%
浏览 3143

C++函数返回的临时匿名对象的生命周期

C++函数返回的临时匿名对象什么时候被释放内存
#include
using namespace std;

class A
{
public:
int x;
A(int a){cout<<"creating"<<endl;x=a;}
A(const A& a){cout<<"copy"<<endl;x=a.x;}
void operator=(A& a)
{
x=a.x;
g(a);
}
void g(A& k)
{
int a=9;
double gd=77;
cout<<k.x<<endl;
}

};
A f(A& k)
{
A j(k.x);
return j;

}

int main()
{
A mike(2);
A job(8);
A jjk(99);
cout<<job.x<<endl;
job=f(mike);
cout<<job.x<<endl;

}

f函数返回了一个临时匿名对象(就叫他P对象吧)
那么这个P对象什么时候内存被释放呢,是job=f(mike);这行代码执行完后才被释放吗

  • 写回答

3条回答 默认 最新

  • oyljerry 2015-05-07 07:57
    关注

    对,当P拷贝成功到job后,就可以释放了。具体取决于编译器实现。但是你可以这么理解

    评论

报告相同问题?

悬赏问题

  • ¥15 关于R语言单因素与多因素线性回归的平均值
  • ¥15 服务器清除BIOS之后引导不了
  • ¥15 CPLEX用OPL编写的混合整数线性优化问题。
  • ¥15 可以用EasyConnect连接实验室内网,但无法连接内网才能访问的服务器,为什么?
  • ¥15 前端预览docx文件,文件从后端传送过来。
  • ¥15 层次聚类和蛋白质相似度
  • ¥25 主成分分析中的第一第二主成分分别代表哪些参数
  • ¥15 oracle数据库查询语句问题
  • ¥15 有没有c++绘制算法的佬们吗救孩一下
  • ¥15 android 蓝牙闪退