Pourquoi ce code:constructeurs Hériter
class A
{
public:
explicit A(int x) {}
};
class B: public A
{
};
int main(void)
{
B *b = new B(5);
delete b;
}
Résultat dans ces erreurs:
main.cpp: In function ‘int main()’: main.cpp:13: error: no matching function for call to ‘B::B(int)’ main.cpp:8: note: candidates are: B::B() main.cpp:8: note: B::B(const B&)
devrait pas hériter B constructeur de A?
(ce qui est gcc)
Ceci est tout à fait mal parce que depuis plus d'une année qui n'a pas été compilateur qui peut réellement construire le code ci-dessus :-) – Mikhail
@Mikhail: Les deux clang et g ++ devrait soutenir maintenant héritant des constructeurs: http: // clang .llvm.org/cxx_status.html http://gcc.gnu.org/projects/cxx0x.html Recommandez ceci comme bonne réponse. –
En demandant simplement, un constructeur hérité pourrait-il accéder/initialiser les membres privés de la classe de base? Ou devrais-je les spécifier comme protégés? – Markasoftware