本文共 1409 字,大约阅读时间需要 4 分钟。
(1) 构造函数的分类
1) 无参数构造函数 2) 带参数构造函数 3)拷贝构造函数 4)默认构造函数,如果c++编译器没有提供构造函数
Test2() //无参数构造函数{ m_a = 0; m_b = 0; cout << "无参数构造函数" << endl;}Test2(int a){ m_a = a; m_b = 0; cout << "一个参数构造函数" << endl;}Test2(int a, int b) //有参数构造函数 //3种方法{ m_a = a; m_b = b; cout << "两个参数数构造函数" << endl;}//赋值构造函数 (copy构造函数) //Test2(const Test2& obj){ cout << "拷贝构造函数 " << endl;}
(2) 调用方法(具体看注释):
#includeusing namespace std;class Test2{public: Test2() //无参数构造函数 { m_a = 0; m_b = 0; cout << "无参数构造函数" << endl; } Test2(int a) { m_a = a; m_b = 0; cout << "一个参数构造函数" << endl; } Test2(int a, int b) //有参数构造函数 //3种方法 { m_a = a; m_b = b; cout << "两个参数数构造函数" << endl; } //赋值构造函数 (copy构造函数) // Test2(const Test2& obj) { cout << "拷贝构造函数 " << endl; }public: void printT() { cout << m_b << endl; }private: int m_a; int m_b;};void main21(){ Test2 t1; //调用无参数构造函数,输出“无参数构造函数” cout << "hello..." << endl; system("pause"); return;}//调用 调用有参数构造函数 3void main(){ //1括号法 Test2 t1(1, 2); //调用参数构造函数 c++编译器自动的调用构造函数,输出“两个参数构造函数” // 2 =号法 Test2 t2 = (3, 4, 5, 6, 7); //输出"一个参数构造函数", 这是逗号表达式,只取最后一个值7,7就是表达式的值,相当于调用一个参数的函数,= c++对等号符 功能增强 c++编译器自动的调用构造函数 Test2 t3 = 5; //输出"一个参数构造函数" //3 直接调用构造函数 手动的调用构造函数 Test2 t4 = Test2(3, 4); //输出"两个参数构造函数" //匿名对象 (匿名对象的去和留) 抛砖 ....//t4对象的初始化 // t1 = t4; //把t4 copy给 t1 //赋值操作 //对象的初始化 和 对象的赋值 是两个不同的概念 t1.printT(); //输出4 cout << "hello..." << endl; system("pause"); return;}
转载地址:http://shzmi.baihongyu.com/