12.2.2 构造函数的分类及调用

    技术2024-01-13  97

    12.2.2 构造函数的分类及调用

    构造函数根据参数的不同分为无参构造、有参构造、拷贝构造。

    无参构造默认构造有参构造用传入的实参初始化当前对象拷贝构造形参是本类对象,用另一个对象去初始化当前对象 #include<iostream> using namespace std; class person { public: //无参构造(默认构造) person() { cout << "person无参构造函数调用" << endl; } //有参构造 person(int a) { age = a; cout << "person有参构造函数调用" << endl; } //拷贝构造函数 person(const person& p) { //用另一个对象初始换当前对象 age = p.age; cout << "person拷贝构造函数调用" << endl; } ~person() { cout << "person析构函数调用" << endl; } int age; };

    调用这些构造函数:

    1、括号法

    person p1; //默认构造,不能加括号,否则变成函数声明 //person p1(); //这是函数声明了 person p2(10); //有参构造,创建的同时让 p2.age=10 person p3(p2); //拷贝构造,用p2创建p3,p2与p3完全相同

    2、显式法

    意义跟括号法一样,只是格式不同

    person p4; person p5 = person(10); person p6 = person(p2);

    3、隐式转换法

    person p8 = p;
    Processed: 0.029, SQL: 10