Abstrakte KLasse und virtual
-
Ich hab mal ne Frage, enthält eine Klasse eine Funktion die mit virtual gekennzeichnet worden ist, ist Sie somit automatisch eine abstrakte Klasse, oder wird diese Klasse erst dann abstrakt, wenn die virtuelle Funktion mit = 0 initialisiert wird?
(In dem Buch, was ich lese, wirds nicht deutlich)
Danke
-
Erst wenn du =0 verwendest.
/Edit: Wenn du nur ein paar virtuelle Methoden hast, ists bloß eine Basisklasse die für Polymorphie geeignet ist.
MfG SideWinder
-
Lassen Exemplare der Klasse dann die virtuelle Funktion ganz normal nutzen?
-
class Base; class Derived : public Base; // FALL 1 Base* base = new Base(); base->method(); // FALL 2 Base* derived = new Derived(); derived->method();method nicht virtual:
Fall1: Base::method() wird aufgerufen
Fall2: Base::method() wird aufgerufenmethod ist virtual:
Fall1: Base::method() wird aufgerufen
Fall2: Derived::method ()wird aufgerufenmethod ist pure virtual (=0):
Fall1: Nicht möglich, da man keine Base-Objekte anlegen kann da die Klasse *abstrakt* ist (pure virtual)
Fall2: Derived::method() wird aufgerufenMfG SideWinder
-
Seikilos schrieb:
Lassen Exemplare der Klasse dann die virtuelle Funktion ganz normal nutzen?
Ja.
D.h wenn du eine Klasse a la:
class Foo { private: int x; public: // ... virtual void show() const { std::cout << " x = " << x << std::endl; } //... };hast und mit
Foo foo_obj;eine Instanz von Foo anlegst kannst du show() wie eine gewohnte Methode aufrufen. (Der Sinn von virtuellen Methoden zeigt sich erst im Zusammenhang mit Vererbung und Basisklassenzeigern...) [edit] => siehe Sidewinder :)[/edit]
Caipi
-
Ok danke,
ich sollte mir keine Büvcher für 2,99 mehr kaufen

-
Sag mal welches Buch das war.

-
"C++ echt einfach"
Der Titel leitet sich vom Preis ab, das ganbs für 3 Euro, wenn ich mehr zahlen wollte, hätte ich mir was vernünftiges geholt. Das Buch fängt an, wie ein Buch für den Kindergarten und macht stellenweise Sprüge, bei denen wundert man sich "Woher hat der dass denn nun?"
-
Hol dir doch eins dieser beiden sehr zu empfehlenden deutschen Tutorials, beide Urheber sind Moderatoren in diesem Forum.
http://tutorial.schornboeck.net/inhalt.htm
http://www.volkard.de/vcppkold/inhalt.htmlMfG SideWnder