deci : ce trebuie sa fie afisat : B::B - 12 15 A::A - 12 15 17 B::B - 7 8 B::B - 10 11 A::A - 10 11 14 ----- A::f1 A::f2 - 12 15 17 B::f1 B::f2 - 7 8 ----- A::f1 B::f2 - 10 11 ----- A::~A B::~B B::~B A::~A B::~B in main: #include "stdafx.h" #include #include "A.h" #include "B.h" void f() { A a(12,15,17); B b(7,8); B *p=new A(10,11,14); printf("------\n"); a.f1();a.f2(); b.f1();b.f2(); printf("------\n"); p->f1();p->f2(); printf("------\n"); delete p; } int main(int argc, char* argv[]) { f(); return 0; } ***in A.h : #include "B.h" class A : public B { int z; public: A(); A(int x1,int y1,int z1); f2(); f1(); virtual ~A(); }; iar in A.CPP : #include "stdafx.h" #include "A.h" #include "B.h" #include A::A() { } A::A(int x1,int y1,int z1): B(x1,y1) { z=z1; printf("A::A - %d %d %d\n",x,y,z); } A::f1() { printf("A::f1\n"); } A::f2() { printf("A::f2 - %d %d %d\n",x,y,z); } A::~A() { printf("A::~A\n"); } *** in B.h : class B { public: int x,y; B(); B(int x1,int y1); f2(); virtual f1(); virtual ~B(); }; in B.CPP : #include "stdafx.h" #include "B.h" #include B::B() { } B::B(int x1,int y1) { x=x1; y=y1; printf("B::B - %d %d\n",x,y); } B::f1() { printf("B::f1\n"); } B::f2() { printf("B::f2 - %d %d\n",x,y); } B::~B() { printf("B::~B\n"); }