Parent
类是一个抽象类。此处_isDone
,_prob
是protected
类的Parent
个变量,由Child
继承。
使用之间有什么区别:
Child::Child(int _classType) : Parent(false, 1.0f)
用于初始化Parent
类的变量。
VS。
Child::Child(int _classType)
{
_isDone = false;
_prob = 1.0f;
}
我觉得使用第二个而不是第一个更容易。有理由使用第一个。
答案 0 :(得分:1)
简短回答:第一个是初始化,第二个是分配。
第一个使用_isDone
的构造函数初始化_prob
和Parent
。但是,当您使用第二个时,使用_isDone
的默认构造函数初始化_prob
和Parent
,然后在Child
中为它们分配新值构造函数的函数体。
第一个更好,原因如下:
Parent
没有默认构造函数,则第二个无效。operator=
来分配新值,而第二个调用正确的构造函数。默认构造函数是多余的。Parent
数据成员是个好主意:Parent
和Child
之间的耦合增加