构造函数分类
按参数分:有参构造无参构造
按类型:普通构造函数和拷贝构造函数
三种调用方法
1.显示法
2.括号法
3.隐氏转换法
1 #include2 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 }