Professional Documents
Culture Documents
מונחה עצמים- מועד ב - המכללה למנהל 2007
מונחה עצמים- מועד ב - המכללה למנהל 2007
h>
class A
}
int num;
public:
A() {cout<<"A1"<<endl;{
A(int x){cout<<"A2"<<endl;}
A(const A& a){cout<<"A3"<<endl;}
~A() {cout<<"A4"<<endl;}
void f(){cout<<"A5"<<endl;}
virtual void g(){h(); cout<<"A6"<<endl;}
void h(){cout<<"A7"<<endl;}
};
class B: public A
{
public:
B() {cout<<"B1"<<endl;}
B(int x):A(x){cout<<"B2"<<endl;}
B(const B& b){cout<<"B3"<<endl;}
virtual ~B() {cout<<"B4"<<endl;}
virtual void f() {cout<<"B5"<<endl;}
virtual void h() {cout<<"B6"<<endl;}
void i(){cout<<"B7"<<endl;}
};
class C: public B
{
public:
A a;
B b;
C(int x = 5):B(x) {cout<<"C1"<<endl;}
virtual ~C() {cout<<"C2"<<endl;}
void h(){cout<<"C3"<<endl;}
void i(){cout<<"C4"<<endl;}
C j(){cout<<"C5"<<endl; return *this;}
{;
void main()
}
//part A.1
A *ptrAtoB = new B();
//Part A.2
B *ptrBtoC = new C();
A* ptrAtoC = new C();
//part B.1
ptrAtoB->h();
//part B.2
ptrAtoB->g();
//part C.1
ptrBtoC->f();
//part C.1
ptrBtoC->h();
//part D
((C*)ptrAtoC)->j();
//part E.1
delete ptrAtoB;
//part E.2
delete ptrBtoC;
//part E.3
delete ptrAtoC;
{
C class VTABLE
B class VTABLE
//----------------------// Part A:
//-----------------------
//----------------------// Part B:
//-----------------------
A class VTABLE
//----------------------// Part C:
//-----------------------
//----------------------// Part D:
//-----------------------
//----------------------// Part E:
//-----------------------
X
Z
W
Y
W
Y
Z
X
Y
Z
X
W
X
Z
Y
BigInt b(1234);
char* intAsStr = b + 15;