#include <iostream>
using namespace std;
struct A
{
void func(float val)
{
cout << "A::func ";
}
};
struct B: A
{
void func(int val)
{
cout << "B::func ";
}
};
int main()
{
B b;
b.func(10);
b.func(10.5);
static_cast<A*>(&b)->func(10);
static_cast<A*>(&b)->func(10.5);
cout << endl;
}