显式调用构造函数及临时对象
来源:互联网 发布:淘宝上付费引流的软件 编辑:程序博客网 时间:2024/05/23 11:20
在读 Google Protocol Buffer 的源码时发现一个段很晦涩的代码(stubs/common.h):
::google::protobuf::internal::LogFinisher() = \ ::google::protobuf::internal::LogMessage(::google::protobuf::LOGLEVEL_##LEVEL, __FILE__, __LINE__)LogFinisher 和 LogMessage 都是类名,LogFinisher 重载了 "=" 运算符,也就是说,这里是显式调用构造函数,而且创建的对象都是临时对象,这段代码实际上是把对象当函数用,因为走完这行,对象就销毁了,功能跟函数式类似的,只不过比普通函数多了一些特性,比如自动析构。
下面来看一下临时对象的生命周期:
#include <iostream>using namespace std;class CTest{public:CTest() { cout << "constructor" << endl; }~CTest() { cout << "desctructor" << endl; }};int main(){CTest();cout << "end" << endl;return 0;}输出结果:
constructordesctructorend说明走完那一行,对象就销毁了,而不是 main() 函数结束时销毁的。
0 0
- 显式调用构造函数及临时对象
- 自动调用类的构造函数生成临时类对象
- C++构造函数详解及显式调用构造函数
- C++构造函数详解及显式调用构造函数
- C++构造函数详解及显式调用构造函数
- C++构造函数详解及显式调用构造函数
- C++构造函数详解及显式调用构造函数
- C++构造函数详解及显式调用构造函数
- C++构造函数详解及显式调用构造函数
- C++构造函数详解及显式调用构造函数
- C++构造函数详解及显式调用构造函数
- C++构造函数详解及显式调用构造函数
- c++构造函数详解及显式调用构造函数
- C++构造函数详解及显式调用构造函数
- c++中构造函数调用另一构造函数的问题,如何避免生成临时对象
- 临时对象与拷贝构造函数
- 临时对象与拷贝构造函数
- c++ 赋值构造函数 临时变量 临时对象 之一
- 机房收费系统——组合查询
- 基础正则表达式
- 你若离去,我自飘零
- Ubunbu下设置远程连接
- android高内聚低耦合任务事件总线框架
- 显式调用构造函数及临时对象
- 【OC学习-24】实例:创建一个文件并连续写入10次当前时间——巩固文件操作和熟悉定时器操作
- jndi练习
- 精通正则表达式(正则引擎)
- Characters in Regex expression
- Sort List
- c# 播放mp3
- LeetCode-Sort Colors
- php语法与C的差别