add ipi10
This commit is contained in:
@@ -0,0 +1,57 @@
|
||||
class A {
|
||||
public:
|
||||
void a() { };
|
||||
virtual void va() = 0;
|
||||
virtual void a(int n);
|
||||
private:
|
||||
void c() { };
|
||||
};
|
||||
|
||||
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) { };
|
||||
virtual void a();
|
||||
virtual void va();
|
||||
};
|
||||
|
||||
int main() {
|
||||
// A a; A abstrakte Klasse
|
||||
B b;
|
||||
C c;
|
||||
A* pa=&b;
|
||||
B* pb=&c;
|
||||
float x = 1.2;
|
||||
pa->a();
|
||||
pa->va();
|
||||
pa->a(1);
|
||||
// pa->c(); A::c() private, hier nicht sichtbar
|
||||
// pa->b(); pa ist vom Typ A* und kennt deswegen b() nicht
|
||||
// pa->vb(); pa ist vom Typ A* und kennt deswegen vb() nicht
|
||||
pa->a(x);
|
||||
// pb->a(); pb ist vom Typ B*, hier ist A::a() überladen durch
|
||||
// entweder B::a(double) bzw. B::a(int) nicht durch B::a()
|
||||
pb->va();
|
||||
pb->a(1);
|
||||
// pb->c(); A::c() private, deswegen hier nicht sichtbar
|
||||
pb->b();
|
||||
pb->vb();
|
||||
pb->a(x);
|
||||
pa = &c;
|
||||
pa->a();
|
||||
pa->va();
|
||||
pa->a(1);
|
||||
// pa->c(); A::c() private, hier nicht sichtbar
|
||||
// pa->b(); pa ist vom Typ A*, kennt deswegen b() nicht
|
||||
// pa->vb(); pa ist vom Typ A*, kennt deswegen vb() nicht
|
||||
pa->a(x);
|
||||
}
|
||||
Reference in New Issue
Block a user