一个关于构造函数的问题

tjsniper 2005-03-17 05:33:46
请问各位高手,如果在类中一个构造函数都不写,在创建对象时C++真的会调用它自己的默认构造函数创建对象吗,怎么我这样做时C++会报错呢?
还有临时对象与无名对象有什么区别呢?
请各位高赐教,谢谢!
...全文
49 点赞 收藏 6
写回复
6 条回复
sloriver 2005年03月17日
会调默认的构造函数

临时对象几乎到处存在。
大多数的时候,它会影响我们程序执行的效率,但是有些时候,我们却又想避免临时对象的产生。
产生:
凡是按值传递对象的时候,就会有临时对象的产生:
1 参数按值传递
2 返回值按值传递
3 复杂的计算表达式,因为要存储临时的计算值

避免:
以引用的方式传递就会避免产生临时对象

必须使用:
因为引用必须有一个实在的可引用的对象,否则引用是错误的。
在没有实在的可引用的对象的时候,你就必须依赖于临时对象。

没有名字的对象就是临时对象,它存在于完整的表达式的生存其间。也就是说,当表达式计算结束后就会被释放。一个例外是,当临时对象被引用时,它的生存期将延长到与这个引用的生存期一样长。
回复 点赞
xindao_wang 2005年03月17日
会调构造函数
回复 点赞
oyljerry 2005年03月17日
无名对象用在值拷贝时
临时对象..
回复 点赞
oyljerry 2005年03月17日
会调用默认的构造函数的
回复 点赞
非著名码农 2005年03月17日
是会调用默认构造函数的啊,是不是有其他地方写错了
回复 点赞
vc_60 2005年03月17日
你看一下C++ PRIMER!答案就在那里!
回复 点赞
发动态
发帖子
VC/MFC
创建于2007-09-28

7895

社区成员

42.1w+

社区内容

VC/MFC相关问题讨论
社区公告
暂无公告