004
16.01.2007, 15:21 Uhr
~tipp
Gast
|
Zitat von Kest: |
Ich hab den Satz aufgeteilt, um ihn besser zu verstehn.
Zitat: |
2. Nennen Sie die erforderlichen Voraussetzungen dafür, dass man zur Laufzeit des Programms mit dem gleichen Zeiger auf Methoden aus verschiedenen Klassen zugreifen kann.
|
Wenn der Zeiger auf die Basisklasse zeigt, dann kann man durch ihn, auf die Methode einer Classe zugreifen, die von der Basisklasse abgeleitet wurde. Sie ist dann zwar mit der Basisklasse verwandt, aber unterschiedlich.
C++: |
#include <iostream> #include <conio.h>
using std::cout; using std::endl;
class A { public: virtual void print() const{ cout << "a - print" << endl; } };
class B : public A { public: virtual void print() const{ cout << "b - print" << endl; } };
void foo(A* obj){ obj->print(); // Zeiger auf A, greift auf B's print(); }
int main() { A a; B b;
foo(&b);
getch(); return 0; }
|
|
@kest nur so als tipp, einen anfänger überfordert man mit so einem code sehr schnell. da is ja schon vererbung drin. auch foo() verunsichert beginner, die kennen foo i.d.R. gar nicht und vermute dahinter ein hexenwerk. und namensräume mit using zu verwenden trägt auch nicht zum verständnis bei.....
keep it as simple as possible.... ;-) |