Dringend Hilfe gesucht: Vererbung und Zeiger
-
Hallo,
ich bräuchte dringen Hilfe.
Was bedeutet:A a;
B b;
C c;A *pa = &b;
B *pb = &c;Was bedeutet das für die Aufrufe in main?
aus:
[code="/** @brief A code example using virtual operations
class A {
private:
void c() { };
public:
virtual void a() { };
virtual void va() = 0;
virtual void a(int n) { };
};class B: public A {
public:
void b() { };
virtual void vb() { };
void a(double d) { };
void a(int i) { };
virtual void va() { };
};class C: public B {
public:
virtual void c() { };
void a(float f) { };
virtual void a() { };
virtual void va() { };
};int main() {
A a;
B b;
C c;A *pa = &b;
B *pb = &c;double x = 7.7;
pa->a();
pa->va();
pa->a(1);
pa->c();
pa->b();
pa->vb();
pa->a(x);pb->va();
pb->a(1);
pb->c();
pb->b();
pb->vb();
pb->a(x);pa = &c;
pa->a();
pa->va();
pa->a(1);
pa->c();
pa->b();
pa->vb();
pa->a(x);
}"]
-
Du meinst, was
A *pa = &b;bedeutet? Das definiert einen Zeiger namens pa auf ein A, der mit dem Wert &b (der Adresse von b) initialisiert wird. Das geht, obwohl b ein B ist, weil jedes B auch ein A ist.Das sollten übrigens so ungefähr die ersten beiden Sachen sein, die man lernt, wenn man sich mit den beiden Themen Zeiger und Vererbung beschäftigt.