C++ 临时变量做函数参数时的生命周期
2014-11-26 18:05
1166 查看
C++ 中如果函数参数是一个类对象的引用时,是否可以创建一个临时变量来传入呢?
这里其实考虑的主要是这个临时变量的生命周期,到底是在进入函数时就被销毁了,还是在函数调用完成之后才被销毁的。
暂时还没有看到比较权威的资料,只是写了一段代码看了一下现象,从现象上看该临时变量是在函数调用完成之后才被销毁的。
下面的一段代码在Windows 和CentOS 下做过测试,结果是一样的。
但,仅是现象而以。
这里其实考虑的主要是这个临时变量的生命周期,到底是在进入函数时就被销毁了,还是在函数调用完成之后才被销毁的。
暂时还没有看到比较权威的资料,只是写了一段代码看了一下现象,从现象上看该临时变量是在函数调用完成之后才被销毁的。
下面的一段代码在Windows 和CentOS 下做过测试,结果是一样的。
但,仅是现象而以。
class cls_test { public: explicit cls_test() { std::cout << "cls_test() 构造" << std::endl; } ~cls_test() { std::cout << "~cls_test() 析构" << std::endl; } }; void func(const cls_test &tst) { std::cout << "func 函数" << std::endl; } int main(int argc, char *argv[]) { func(cls_test()); getchar(); return 0; }
运行的结果: cls_test() 构造 func() 函数 ~cls_test() 析构
相关文章推荐
- 也谈C++深拷贝、浅拷贝和函数返回值作参数及其临时变量的生存期
- c++中临时变量不能作为非const的引用参数
- C++中函数的参数是传值还是传址?return返回的变量是传值还是传址?
- [C/C++] const 详解(修饰变量、输入参数、返回值、成员函数)
- C++中变量,函数的作用域和生命周期?
- C++获取Lua全局变量和执行Lua多参数多返回值函数
- C++临时变量的生命周期(const 引用后延长临时变量周期)
- 作为函数参数的临时变量的引用必须是const的
- C++临时变量的生命周期
- [c++学习笔记]反汇编角度看变量名和引用作为函数参数
- 作为函数参数的临时变量的引用必须是const的
- c++中临时变量不能作为非const的引用参数
- C++中函数建立临时变量的机制(const)
- C++ 不用临时变量交换两个变量的值——函数对象
- c++中临时变量不能作为非const的引用参数
- c++ const: const 变量, const 输入参数, const 返回值, const 成员函数
- [转]c++中临时变量不能作为非const的引用参数
- C++临时变量的生命周期
- c++中临时变量不能作为非const的引用参数
- C++获取Lua全局变量和执行Lua多参数多返回值函数