Jeśli mam klasę bazową:Pochodzące klasy Konstruktor wywołuje
class Base{
...
};
i klasę pochodną
class Derived : public Base{
...
}
nie ta klasa pochodzi zawsze zadzwonić domyślny konstruktor klasy bazowej? tj. konstruktor, który nie przyjmuje parametrów? Na przykład, jeśli I zdefiniować konstruktor klasy bazowej:
Base(int newValue);
ale nie definiują domyślny konstruktor (konstruktora bez parametrów):
Base();
(uznaję to tylko deklaracja, a nie definicja) Otrzymuję błąd, dopóki nie zdefiniuję domyślnego konstruktora, który nie przyjmuje parametrów. Czy to dlatego, że domyślnym konstruktorem klasy bazowej jest ten, który jest wywoływany przez klasę pochodną?
Możesz sprawdzić, ustawiając domyślny konstruktor w klasie bazowej, drukuj coś unikalnego na ekranie. To jest dobry sposób, aby sprawdzić takie rzeczy i nauczyć się rzeczy! –