C++构造函数 拷贝构造函数 括号法显示法隐式转换法实现类
一.无参构造 & 有参构造 & 拷贝构造函数
拷贝的是自己所属的类,也就是克隆自己。
所以传参要穿自己的类名。
克隆归克隆,但是不能把本身给改了,所以参数前要加const。
class Person
{
public:
int age;
public:
Person()
{
cout<<"Person的构造函数"<<endl;
}
Person(int a)
{
age = a;
cout<<"Person的有参构造函数"<<endl;
}
//拷贝构造函数
Person(const Person &p)
{
// 将传入的人身上的所有属性,拷贝到我身上。
age = p.age;
}
};
二.三种方法调用构造函数(类的实现)
//1.括号法调用
Person p1; // 调用默认构造函数 (调默认构造函数时不能加括号,否则编译器会认为是声明)
Person p2(10); //调用有参构造函数
Person p3(p2); //调用拷贝构造函数
//2.显示法
Person p2 = Person(10); //调用有参构造
Person p3 = Person(p2); //调用拷贝构造
//3.隐式转换法
Person p4 = 10; //相当于 Person p4 = Person(10);
Person p5 = p4; //拷贝构造