15.4.3:
#include "iostream"
using namespace std;
class A
{
public:
void func1()
{
cout<<"AAAAAAA::F1"<<endl;
}
virtual void func2()
{
cout<<"AAAA::F2222222222"<<endl;
}
};
class B:public A
{
public:
virtual void func1()
{
cout<<"bbbbbbb::F1"<<endl;
}
void func2()
{
cout<<"BBBBBBBBBB::F2"<<endl;
}
};
class C:public B
{
public:
void func1()
{
cout<<"CCCCCCCCC::F1"<<endl;
}
void func2()
{
cout<<"CCCCCCCC::F2"<<endl;
}
};
int main()
{
C obj;
A *pa=&obj;
B *pb=&obj;
pa->func2();
pa->func1();
pb->func1();
return 0;
}
#include "iostream"
using namespace std;
class A
{
public:
void func1()
{
cout<<"AAAAAAA::F1"<<endl;
}
virtual void func2()
{
cout<<"AAAA::F2222222222"<<endl;
}
};
class B:public A
{
public:
virtual void func1()
{
cout<<"bbbbbbb::F1"<<endl;
}
void func2()
{
cout<<"BBBBBBBBBB::F2"<<endl;
}
};
class C:public B
{
public:
void func1()
{
cout<<"CCCCCCCCC::F1"<<endl;
}
void func2()
{
cout<<"CCCCCCCC::F2"<<endl;
}
};
int main()
{
C obj;
A *pa=&obj;
B *pb=&obj;
pa->func2();
pa->func1();
pb->func1();
return 0;
}