我不明白爲什麼,當我嘗試創建一個基類的對象,我可以,但只有沒有聲明派生類,並聲明派生我需要在基類構造函數中設置參數值爲「= 0」?當我聲明派生類時,爲什麼我需要在基類中爲某個值設置變量?
#include <cstdlib>
using namespace std;
class Base {
public:
int m_nValue;
Base(int nValue=0) //<--- why here i need = 0 ?
: m_nValue(nValue)
{}
};
class Derived: public Base {
public:
double m_dValue;
Derived(double dValue)
: m_dValue(dValue)
{}
};
int main(int argc, char** argv) {
Base cBase(5); // use Base(int) constructor
return 0;
}
我覺得寫'基地()= default'意味着默認構造函數不會初始化'm_nValue' - 這將是壞的。 –
@MartinBonner:好點,我修改了。 – Bathsheba