#include<bits/stdc++.h> using namespace std; class person{ public: person(){ cout<<"这是无参数的构造函数"<<endl; } person(int a){ age=a; cout<<"这是有参数的构造函数"<<endl; } ~person(){ cout<<"这是析构函数"<<endl; } //拷贝构造函数 person(const person &p){ //将传入的人身上的所有属性,拷贝到我身上 age=p.age; cout<<"这是拷贝构造函数"<<endl; } int age; }; //调用 void test01(){ //1、括号法 // person p1; // person p2(10);//有参构造函数 // person p3(p2); // // cout<<"p2的年龄为: "<<p2.age<<endl; // cout<<"p3的年龄为: "<<p3.age<<endl; //注意事项 //调用默认构造函数的时候,不要加() //因为下面这行代码,编译器会认为是一个函数的声明,不会认为是在创建对象 //person p1() //显示法 person p1; person p2=person(10); person p3=person(p2); //隐式转换法 person p4=10;//相当于写了person p4=person(10) } int main() { //构造函数的分类和调用 //两种分类方式 //按参数分类:有参数构造和无参数构造 //按类型分类:普通构造和拷贝构造 //三种调用方式: //括号法 //显示法 //隐式转换法 test01(); return 0; }