Я не понимаю, почему, когда я пытаюсь создать объект базового класса, я могу, но только без объявления производного класса, а при объявлении Derived мне нужно установить значение аргумента «= 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;
}