这段代码到底在做什么?
这是我正在阅读的c ++书中的构造函数,它掩盖了究竟发生了什么。
Derived(int a=0, int b=0) : Base(a), dNum(b){
cout<< "Derived constructor." <<endl;
}
因此它将a和b传递给该代码派生自的类的基本构造函数。但是“int a = 0,int b = 0”会发生什么? 如果仅使用1arg或没有args创建对象,我们是否将它们设置为零?如果是这样,一旦我们离开范围,a和b就会消失,或者在它们已经传递到基类之后发生这种情况,所以它们就像那样被动声明并不重要。
答案 0 :(得分:1)
这些被称为&#34;默认参数&#34;在C ++中。 (还有C#。)
现在你知道他们是如何被调用的,你可以谷歌他们。
简而言之,它们允许调用者省略为它们提供值,如果调用者不提供值,则将使用给定值。
它们只是语法糖,意味着编码为Derived();
的构造函数将编译为Derived( 0, 0 );