1 #include<iostream> 2 3 using namespace std; 4 //解析和析构函数的调用 5 class Test 6 { 7 public: 8 Test() 9 { 10 cout<<"我是无参的构造函数 "; 11 } 12 Test (int i) 13 { 14 t_a=i; 15 cout<<"i= "<<i<<endl; 16 cout<<"哎呀,人家是形参为1的构造函数、 "; 17 } 18 Test (int a,int b) 19 { 20 cout<<"a= "<<a<<" b= "<<a<<endl; 21 cout<<"我是两个参数的构造函数、 "; 22 } 23 Test(const Test &obj) 24 { 25 cout<<"我是赋值构造函数又叫拷贝构造函数 "; 26 } 27 ~Test() 28 29 { 30 cout<<"我是析构函数 "; 31 } 32 33 private: 34 int t_a; 35 int t_b; 36 protected: 37 }; 38 39 void playobj(Test a1) 40 { 41 cout<<"看看调用了没、 "; 42 } 43 44 Test playobj2() 45 { 46 Test b(1,2); 47 cout<<"这是第四种、 "; 48 return b; 49 } 50 int main() 51 { 52 cout<<" Test t1 ====>"; 53 Test t1;//无参函数的赋值 54 cout<<endl; 55 cout<<" Test t2(1,3) =========> "; 56 Test t2(1,3);//两个形参的函数调用 57 cout<<endl; 58 59 cout<<" Test t3=(1,3)========> "; 60 Test t3=(1,3);//一个形参的调用 61 cout<<endl; 62 cout<<" Test t4=3========> "; 63 Test t4=3;//一个形参的调用 64 cout<<endl; 65 cout<<" Test t5(3)========> "; 66 Test t5(3);//一个形参的调用 67 cout<<endl; 68 69 cout<<" Test t6=Test(1)========> "; 70 Test t6=Test(1);//匿名对象,这个较为特殊,右边括号内几个值就调用几个形参的函数。 71 cout<<endl; 72 73 cout<<" Test t7=Test(1,3)========> "; 74 Test t7=Test(1,3);//匿名对象,这个较为特殊,右边括号内几个值就调用几个形参的函数。 75 cout<<endl; 76 77 //接下来是四种赋值构造函数的调用情景、 78 cout<<" Test e1=t1======> "; 79 Test e1=t1;//第一种赋值构造函数调用方法 80 81 cout<<" Test e2(t1)======> "; 82 Test e2(t1);//这是第二种赋值构造函数的调用方法 83 84 cout<<" playobj(t1)======> "; 85 playobj(t1);//第三种调用方法 86 87 cout<<" Test e4=playobj2()======> "; 88 Test e4=playobj2();//四 89 90 91 92 93 cout<<" hello world "; 94 system("pause"); 95 }