您的位置:首页 > 编程语言 > C语言/C++

C++临时对象

2014-10-05 09:40 211 查看
#include <iostream>
using namespace std;
class Test
{
	int m_i;
	int m_j;
	static int count;
public:
	Test()
	{
		count++;
		cout<<"调用无参构造函数"<<endl; 
		cout<<"Test()"<<endl;
	}
	Test(int v)
	{
		count++; 
		cout<<"调用int参构造函数"<<endl;
		cout<<"Test(int v)"<<endl;
	}
	
	~Test()
	{
		cout<<"~Test()"<<endl;
	}
	static void output()
	{
		cout<<count<<endl;
	}
};
int Test::count = 0;
Test Play(Test t)
{
	return t;
}
int main()
{
	//Test a = Play(5);
	//在使用一个临时对象( 可能是无名对象 或者 返回对象值时 ) 创建构造另一个对象的过程的中,c++会优化掉该临时对象的产生,
	//直接以相同参数调用相关构造函数构或者 直接调用拷贝构造函数 到 目标对象.

    Test a;
    Test b = Play(a);//这里优化掉临时对象的产生?? 
	//Test a(Play(5)); 
	//	Play(5);
	//Play(5).output();
}


还是不太理解这道题,难道是因为编译器优化的问题?

先记下来。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: