构造,复制,赋值,析构

来源:互联网 发布:创业软件子公司 编辑:程序博客网 时间:2024/06/05 09:28
#include<iostream>using namespace std;class A{public:A(int t=0):data(t){cout<<"constructor!"<<endl;}//explicit A(int t=0):data(t){cout<<"constructor!"<<endl;}A(const A &a){data=a.data;cout<<"copy constructor!"<<endl;}A & operator=(const A &a){if(this!=&a){data=a.data;}cout<<"operator ="<<endl;return *this;}virtual ~A(){cout<<"destructor!"<<endl;}private:int data;};A test(const A a){return a;}int main(){//A t;/*构造函数 析构函数*///A t=A();/*构造函数 析构函数*///A *t=new A();/*构造函数*///delete t;/*析构函数*///A t=1;//A t1=t;/*构造,复制,析构,析构*///A t=A(1);//A t1;//t1=t;/*构造,构造,赋值,析构,析构*//*如果将只有一个形参的构造函数前加explicit关键字,则阻止了这种隐式类转化,需显示调用构造函数*///A t=1;//error//A t=A(1);A *t=new A();/*构造函数*/test(*t);/*复制函数,复制函数,因为形参类型与返回值类型*/delete t;/*析构函数,析构,析构*/return 0;}


 

原创粉丝点击