一个C++问题

[复制链接]
查看11 | 回复1 | 2007-6-21 10:07:48 | 显示全部楼层 |阅读模式
在建立数组时,应该是先建立了一个临时对象,然后把这个对象拷贝到数组中的,你可以通过下面的代码来验证一下:int main(){ Student t(1,"Han",87.5); Student stu[1] = { t };cout << "&t = " << &t << endl; cout << "&stu[0] = " << &stu[0] << endl; return 0; }////////////////////////////////////Output:&t = 0012FF2C&stu[0] = 0012FEFC析构函数被调用析构函数被调用///////////////////////////////////////看见t和stu[0]并不是同一个对象
回复

使用道具 举报

千问 | 2007-6-21 10:07:48 | 显示全部楼层
Student stu[1]={Student(1,"Han",87.5)}; 这一句打括号里面临时构造了一个Student对象,并赋值给stu[1],当这句执行完后,这个临时构造的对象生命周期就结束了,就会走析构函数,只是析构的这个临时对象。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行