Nisum Technologies Interview Question
Below code and it's output should answer all these questions. instead of static_cast, you can use reinterpret cast as well.
#include <iostream>
using namespace std;
class D;
class B
{
public:
void disp(){cout<<"Bas disp"<<endl;}
void show(int i){cout<<"Bas show with int"<<endl;}
void show(D& d1){cout<<"Bas show with D"<<endl;}
void gets(){cout<<"Bas gets"<<endl;}
};
class D : public B
{
public:
void disp(){cout<<"Dir disp"<<endl;}
void show(){cout<<"Dir show"<<endl;}
void puts(){cout<<"Dir puts"<<endl;}
};
int main()
{
D dd;
B *b = new D();
D *d = static_cast<D*>(b);
d->B::disp();
d->show();
d->B::show(10);
d->B::show(dd);
d->puts();
d->gets();
b->disp();
b->show(20);
b->gets();
}
Dir show
Bas show with int
Bas show with D
Dir puts
Bas gets
Bas disp
Bas show with int
Bas gets
D *d = static_cast<D*>(b);
- Anonymous November 29, 2010d->show(*d);