- 按参数分:
- 有参函数
//有参函数 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)欢迎分享,转载请注明来源:内存溢出
评论列表(0条)