该Parent
班是一个抽象类。这里_isDone
,_prob
是protected
变量Parent
类,由继承Child
。
使用之间有什么区别:
Child::Child(int _classType) : Parent(false, 1.0f)
用于初始化Parent
类的变量。
与
Child::Child(int _classType)
{
_isDone = false;
_prob = 1.0f;
}
我觉得使用第二个而不是第一个更容易。任何理由使用第一个。
简短的回答:第一个是初始化,第二个是赋值。
第一个初始化_isDone
并_prob
用Parent
的构造。但是,当您使用第二个时,_isDone
并_prob
使用Parent
的默认构造函数进行了初始化,然后在Child
构造函数的函数体中为其分配了新值。
第一个更好是因为以下原因:
Parent
没有默认构造函数,则第二个不能工作。operator=
以分配新值,而第二个仅调用适当的构造函数。默认构造函数是冗余的。Parent
直接访问的数据成员不是一个好主意:Parent
和之间的耦合增加Child
。本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句