Considera che hai 2 classi semplici:
class Parent {
public:
virtual void foo() = 0;
};
class Child : public Parent {
std::vector<Parent*> parents;
public:
Child() : parents() {}
virtual void foo() {
std::cout << "Foo" << std::endl;
}
};
Mi sembra corretto! Ma il mio insegnante dice che non ho eseguito esplicitamente il costruttore del genitore nel costruttore di Child, anche se non ha argomenti, quella è una cattiva pratica di programmazione!
Per chiarire, voleva che lo facessi invece:
class Child : public Parent {
std::vector<Parent*> parents;
public:
Child() : parents(), Parent() {}
virtual void foo() {
std::cout << "Foo" << std::endl;
}
};
Non riesco a trovare alcuna documentazione specifica in C ++ che dica che quello che ho fatto è considerato una cattiva pratica di programmazione o che quello che vuole è considerato una buona pratica di programmazione!
L'inferno! Ha anche esteso la sua teoria a Java, che programma da più di 4 anni e non l'ha mai fatto!
Qualcuno può aiutarmi a trovare un documento ufficiale che dice diversamente o che supporta il mio punto? O almeno i programmatori esperti là fuori che rispettano sempre le convenzioni, qual è la tua opinione!?
Perché per me quello che ho fatto è una buona pratica di programmazione, e che non dovrei essere penalizzato nel mio esame per non aver fatto quello che voleva.