构造函数的分类和调用
构造函数分类
按参数分:有参构造无参构造
按类型:普通构造函数和拷贝构造函数
三种调用方法
1.显示法
2.括号法
3.隐氏转换法
1 #include<bits/stdc++.h> 2 using namespace std; 3 4 class stu 5 { 6 public: 7 stu() 8 { 9 puts("stu无参构造函数调用"); 10 } 11 12 stu(int age) 13 { 14 s_age = age; 15 puts("stu有参构造函数调用"); 16 } 17 18 stu(const stu &s) 19 { 20 //将传入的学生的所有属性全部拷贝到我身上 21 s_age = s.s_age; 22 puts("stu拷贝构造函数调用"); 23 } 24 ~stu() 25 { 26 puts("stu析构函数调用"); 27 } 28 int s_age; 29 }; 30 //调用 31 void test() 32 { 33 //括号法 34 // stu s;//默认构造函数调用 35 // stu s2(10); //有参构造函数调用 36 // stu s3(s2);//拷贝构造函数调用 37 //注意默认构造不要加(),不然系统会认为是一个函数的声明 38 39 //显示法 40 stu s; 41 stu s2 = stu(18);//有参构造 42 stu s3 = stu(s2);//拷贝构造 43 // 44 // stu(10); //没有名字的对象,称为匿名对象 45 //特点:当前行执行结束后,系统立即回收匿名对象 46 //cout << "hahahha" << endl; 47 //隐氏转换法 48 stu s4 = 10;//有参调用 49 stu s5 = s4;//拷贝构造调用 50 51 } 52 53 int main() 54 { 55 test(); 56 return 0; 57 }