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;
}
private:
string name;
int age;
};
void test01() {
Person p;
}
void test02() {
//1.括号法
Person p;//默认构造函数调用,不要加()。Person p();会被看成函数声明。
Person p2(10);//有参构造函数
Person p3(p2);//拷贝构造函数
//2.显示法
Person p;
Person p2 = Person(10);
Person p3 = Person(p2);
Person(10);//匿名对象,特点:当前行执行完毕,系统会立即回收匿名对象。
//3.隐式转换法
Person p4 = 10;//相当于 Person p4=Person(10);
}
int main()
{
system("pause");
return 0;
}
来源:黑马程序员