最近看郑阿奇的《visual c++使用教程》(第四版)P116页,有这样一句话:
与 “A(int a=100){x=a}”构造函数等价的是:
A( int a){x=a;}
A():x(100){}
构造函数“A(int a=100){x=a}” 怎么能包含了默认构造函数:A():x(100){}呢?高手能指点一下不?谢谢!
与 “A(int a=100){x=a}”构造函数等价的是:
A( int a){x=a;}
A():x(100){}
构造函数“A(int a=100){x=a}” 怎么能包含了默认构造函数:A():x(100){}呢?高手能指点一下不?谢谢!
解决方案
40
原因是A(int a=100){x=a}这样写的时候,int a=100有这句(这句是带默认值的)
假如你传入了参数参与构造,那么会使用你传入的值,假如没有就会使用默认值100
1.假如不传参数,那么会用默认值100给成员变量x赋值,相当于是A():x(100){}
2.假如传入参数,那么会用传入的值赋值给成员变量x,相当于A( int a){x=a;}
假如你传入了参数参与构造,那么会使用你传入的值,假如没有就会使用默认值100
1.假如不传参数,那么会用默认值100给成员变量x赋值,相当于是A():x(100){}
2.假如传入参数,那么会用传入的值赋值给成员变量x,相当于A( int a){x=a;}
20
想一下
A a1(1);
A a2;
的时候,两种情况下分别会发生什么
============
默认构造函数,是没有参数,或全部参数都有默认值的构造函数
A a1(1);
A a2;
的时候,两种情况下分别会发生什么
============
默认构造函数,是没有参数,或全部参数都有默认值的构造函数