[flydream@flydream A]$ cat AA.cpp
#include <iostream>
using namespace std;
class Base
{
public:
virtual void f(float x)
{
cout << "Base::f(float) == " << x << endl;
}
void g(float x)
{
cout << "Base::g(float) == " << x << endl;
}
void h(float x)
{
cout << "Base::h(float) == " << x << endl;
}
void j(int x)
{
cout << "Base::j(int) == " << x << endl;
}
};
class Derived : public Base
{
public:
virtual void f(float x)
{
cout << "Derived::g(float) == " << x << endl;
}
void g(int x)
{
cout << "Derived::g(int) == " << x << endl;
}
void h(float x)
{
cout << "Derived::h(float) == " << x << endl;
}
void j(float x)
{
cout << "Derived::j(float) == " << x << endl;
}
};
int main(int argc, char **argv)
{
Derived d;
Base *pb = &d;
Derived *pd = &d;
pb->f(3.14f); //D
pd->f(3.14f); //D
pb->g(3.14f); //B
pd->g(3.14f); //D
pb->h(3.14f); //B
pd->h(3.14f); //D
pb->j(3.14f); //B
pd->j(3.14f); //D
return 0;
}
[flydream@flydream A]$ g++ -g -Wall AA.cpp
[flydream@flydream A]$ ./a.out
Derived::g(float) == 3.14
Derived::g(float) == 3.14
Base::g(float) == 3.14
Derived::g(int) == 3
Base::h(float) == 3.14
Derived::h(float) == 3.14
Base::j(int) == 3
Derived::j(float) == 3.14
[flydream@flydream A]$
#include <iostream>
using namespace std;
class Base
{
public:
virtual void f(float x)
{
cout << "Base::f(float) == " << x << endl;
}
void g(float x)
{
cout << "Base::g(float) == " << x << endl;
}
void h(float x)
{
cout << "Base::h(float) == " << x << endl;
}
void j(int x)
{
cout << "Base::j(int) == " << x << endl;
}
};
class Derived : public Base
{
public:
virtual void f(float x)
{
cout << "Derived::g(float) == " << x << endl;
}
void g(int x)
{
cout << "Derived::g(int) == " << x << endl;
}
void h(float x)
{
cout << "Derived::h(float) == " << x << endl;
}
void j(float x)
{
cout << "Derived::j(float) == " << x << endl;
}
};
int main(int argc, char **argv)
{
Derived d;
Base *pb = &d;
Derived *pd = &d;
pb->f(3.14f); //D
pd->f(3.14f); //D
pb->g(3.14f); //B
pd->g(3.14f); //D
pb->h(3.14f); //B
pd->h(3.14f); //D
pb->j(3.14f); //B
pd->j(3.14f); //D
return 0;
}
[flydream@flydream A]$ g++ -g -Wall AA.cpp
[flydream@flydream A]$ ./a.out
Derived::g(float) == 3.14
Derived::g(float) == 3.14
Base::g(float) == 3.14
Derived::g(int) == 3
Base::h(float) == 3.14
Derived::h(float) == 3.14
Base::j(int) == 3
Derived::j(float) == 3.14
[flydream@flydream A]$