#include <iostream>
using namespace std;
class Base{
public:
virtual Base* afn() {
cout << "This is Base class.\n";
return this;
}
};
class SubClass: public Base {
public:
SubClass* afn() {
cout << "This is SubClass.\n" ;
return this;
}
};
void test(Base &x) {
Base* b;
b = x.afn();
}
int main()
{
Base bc;
SubClass sc;
cout << "Calling test(bc)\n";
test(bc);
cout << "Calling test(sc)\n";
test(sc);
return 0;
}
class Base{
public:
virtual void fn(int x){
cout << "In Base class, int x = " << x << endl;
}
};
class SubClass: public Base {
public:
virtual void fn(float x) {
cout << "In SubClass, float x = " << x << endl;
}
};
void test(Base &b) {
int i = 1;
b.fn(i);
float f = 2.0;
b.fn(f);
}
int main()
{
Base bc;
SubClass sc;
cout << "Calling test(bc)\n";
test(bc);
cout << "Calling test(sc)\n";
test(sc);
return 0;
}
class Base{
public:
virtual void fn();
};
void Base::fn() {
cout << " In Base class\n";
}
class SubClass: public Base {
public:
virtual void fn();
};
void SubClass::fn() {
cout << " In SubClass\n";
}
void test(Base &b) {
b.fn();
}
int main()
{
Base bc;
SubClass sc;
cout << "Calling test(bc)\n";
test(bc);
cout << "Calling test(sc)\n";
test(sc);
return 0;
}