//程序作者:管宁 //站点:www.cndev-lab.com //所有稿件均有版权,如要转载,请务必著名出处和作者 #include <iostream> usingnamespacestd; classInternet { public: Internet(char*name,char*address) { cout<<"载入构造函数"<strcpy(Internet::name,name); } Internet(Internet &temp) { cout<<"载入COPY构造函数"<strcpy(Internet::name,temp.name); cin.get(); } ~Internet() { cout<<"载入析构函数!"; } public: charname[20]; charaddress[20]; }; voidmain() { Internet &a=Internet("中国软件开发实验室","www.cndev-lab.com"); cout<cin.get(); } 引用本身是对象的别名,和复制并没有关系,所以不会调用拷贝构造函数,但要注意的是,在c++看来: Internet &a=Internet("中国软件开发实验室","www.cndev-lab.com"); 是等价与: Internet a("中国软件开发实验室","www.cndev-lab.com"); 的,注意观察调用析构函数的位置(这种情况是在main()外调用,而无名对象本身是在main()内析构的)。 |