1.括号法
2.显示法
3.隐式转换法
代码示例如下:
#include<iostream>
using namespace std;
class Person
{
int age;
public:
//普通有无参数
Person()
{
cout << "Person的无参构造函数调用" << endl;
}
Person(int a)
{
age = a;
cout << "Person的有参构造函数调用" << endl;
}
//拷贝构造函数,本身不能改变,用引入对象
Person(const Person& p)
{
age = p.age;
cout << "Person的引用参数构造函数调用" << endl;
cout << "age =" << age << endl;
}
};
//调用
void test01()
{
//1.括号法 ***
Person p1;//默认
Person p2(10);//有参
Person p3(p2);
//2.显示法
Person p4;
Person p5 = Person(10);
Person p6 = Person(p5);
Person(10);//匿名对象,当前行执行结束后,系统会立即回收
//不要利用拷贝构造函数初始化匿名对象 Person(p3);错误
//3.隐式转换法
Person p7 = 10;
Person p8 = p7;
}
int main() {
test01();
}