Warum dieser Code:Vererben Bauer
class A
{
public:
explicit A(int x) {}
};
class B: public A
{
};
int main(void)
{
B *b = new B(5);
delete b;
}
Ergebnis in diesem Fehler:
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&)
Sollte erben nicht B A Konstruktor?
(dies wird mit gcc)
Das ist ziemlich böse, weil seit über einem Jahr, die keinen Compiler wurde, dass die oben genannten Code :-) – Mikhail
@Mikhail tatsächlich bauen können: Sowohl Klirren und g ++ jetzt sollte unterstützen Konstrukteure erben: http: // Klirren .llvm.org/cxx_status.html http://gcc.gnu.org/projects/cxx0x.html Empfehlen Sie diesen als die richtige Antwort. –
fragt nur, ob ein geerbter Konstruktor auf die privaten Mitglieder der Basisklasse zugreifen/diese initialisieren könnte? Oder müsste ich sie als geschützt angeben? – Markasoftware