您的位置:首页 > 其它

构造函数,拷贝构造函数,赋值操作符的调用时机

2012-08-15 14:59 274 查看
#include <iostream.h>

class TEST
{
public:
TEST()
{
cout<<"默认构造函数"<<endl;
}
TEST(const TEST&t)
{
cout<<"拷贝构造函数"<<endl;
}
TEST &operator =(const TEST&t)
{
cout<<"赋值操作符"<<endl;
return *this;
}
};

void fun(TEST t){}

void main()
{
cout<<"构造t1  ";
TEST t1;

cout<<"构造t2  ";
TEST t2=t1;

cout<<"构造t3  ";
TEST t3(t1);

cout<<"赋值  ";
t3=t1;

cout<<"函数参数的构造方式  ";
fun(t1);
}




尤其需要注意的是,即使是‘=’号,也未必是赋值操作符,就像TEST  t2=t1;调用的是拷贝构造函数,因为此时是构造t2的阶段,所以只能是调用构造函数。

但是如果已经定义了t2,然后t2=t1;则调用赋值操作符。

还有,以“传值”的方式当作参数时,也调用拷贝构造。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  fun include
相关文章推荐