4. 临时对象(匿名对象)
临时对象(又叫匿名对象)是指直接由构造函数创建的对象。他通常用于表达式中或函数传参等临时创建一个对象进行操作。
临时对象的生命周期短,通常在表达式结束后就会被销毁。
示例
// filename: temp_obj.cpp
#include <iostream>
using namespace std;
class Square {
public:
Square(double l=1) {
cout << "边长为" << l << "的正方形被创建!" << endl;
length = l;
}
~Square() {
cout << "边长为" << length << "的正方形被销毁!" << endl;
}
double get_length(void) {
return length * 2;
}
private:
double length;
};
int main(int argc, char * argv[]) {
// 创建临时对象
Square(55);
// 创建临时对象并调用成员函数
cout << Square(6).get_length() << endl;
return 0;
}
编译和运行结果如下
weimz@mzstudio:~$ g++ -o temp_obj temp_obj.cpp
weimz@mzstudio:~$ ./temp_obj
边长为55的正方形被创建!
边长为55的正方形被销毁!
边长为6的正方形被创建!
12
边长为6的正方形被销毁!
从构造函数和析构函数的调用过程来看,临时对象在创建此对象的表达式执行完毕后临时对象就会被销毁。