- 按参数分:
- 有参函数
//有参函数
class Person
{
public:
person(int a)
{
age=a;
cout<<"有参构造函数的调用:"<
- 无参函数(即默认函数)
//无参函数(默认函数)
class Person
{
public:
Person()
{
cout<<"无参函数的构造函数的调用。"<
- 按类型分:
- 普通构造
- 拷贝构造
class Person
{
public:
//有参构造函数
Person(int a)
{
age=a;
cout<<"有参构造函数的调用:"<
请注意:函数名一定要与类名完全相同
构造函数的调用
- 括号法
Person P; //无参
Person p1(10) ; //有参
Person p2(p1); //拷贝
注意:
调用无参(默认)构造函数时不能使用小括号,否则编译器就会将其识别为一个函数声明。
- 显示法
Person p; //默认(无参)函数
Person p1=Person(10); //有参函数
Person p2=Person(p1); //构造函数
匿名对象:
1.Person(p1)、Person(10)属于匿名对象,匿名对象在该行结束后,系统就自动回收该对象;
2.不能用拷贝构造函数初始化匿名对象,编译器认为:Person(p3)==Person p3,会产生重定义的错误。
- 隐式转换
Person p4=10 //即Person p4 =Person(10)
Person p5=p4 //Person p5=Person(p4)



