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

浅析C++的构造函数,拷贝构造函数和赋值运算符 .

2012-10-22 12:21 525 查看
一.首先通过下面的测试程序,粗略的感知一下这三个函数分别在什么情况下被调用


#include <iostream>




using namespace std;




class T


{




public:


T() { cout<<"dafault constructor"<<endl;}


T(const T & t) {cout<<"copy constructor"<<endl;}


void operator =(const T &t) { cout<<"assignment operator"<<endl;}


};




int main ( int argc,char * argv[])


{


T a;


T b=a;


b=a;




return 1;


}



程序运行结果为


dafault constructor //T a;


copy constructor // T b=a;


assignment operator // b=a;

从该测试程序我们可以知道,拷贝构造函数与赋值运算符虽然所完成的工作在概念上很相似——都是根据一个已有对象来对确定另一个对象的内容,然而二者有本质 的不同,前者用于初始化,而后者用于赋值操作。换言之,对于拷贝构造函数,当其被调用时,源对象已存在,而目标对象还未被创建;而对于赋值运算符,当其被 调用时,源对象和目标对象都已存在。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐