Polymorphie (virtuelle Methoden)
-
//Virtuelle Methoden #include <iostream> #include <conio.h> using namespace std; class Mammal { //Zeile 8 protected: int itsAge; public: //Konstruktor/Destruktor Mammal():itsAge(1) {cout<< "Mammal-Konstruktor..." <<endl;} ~Mammal() {cout<< "Mammal-Destruktor..." <<endl;} void Move() const {cout<< "Mammal geht einen Schritt..." <<endl;} virtual void Speak() const {cout<< "Mammal spricht!" <<endl; }; class Dog : public Mammal { //Zeile 21 public: //Konstruktoren/Destruktoren Dog() {cout<< "Dog-Konstruktor..." <<endl;} ~Dog() {cout<< "Dog-Destruktor..." <<endl;} //Andere Methoden void WagTail() {cout<< "Schwanzwedeln..." <<endl;} void Move() const; void Speak() const {cout<< "Wuff...." <<endl;} }; int main() { Mammal *pDog = new Dog; //erzeugt einen Zeiger pDog auf Mammal, weist ihm //aber die Adresse eines neuen Dog-Objekts zu!!!!! pDog -> Move(); pDog -> Speak(); getch(); return 0; }21 invalid use of undefined type
class Mammal' 8 forward declaration ofclass Mammal'kann mir bitte einer den Fehler zeigen ich sehe ihn nicht.
gruß alexps: habe die Klassen nur zu Testzwecken in die selbe Datei geschrieben
-
In Zeile 17 fehlt eine geschweifte Klammer

-
oooohhh!

jetzt seh ichs auch

danke dir