#include "iostream"
using namespace std;
class A//基类
{
public:
int m_a=10;
int m_b=50;
void func()
{
cout<<"调用了A的fun()函数。\n";
}
void func(int a)
{
cout<<"调用了Afunc()函数。\n";
m_a=a;
}
};
class B:public A//派生类
{
public:
int m_a=20;
void func(){cout<<"调用了A的func()函数。\n";}
};
class C:public B
{
public:
int m_a=30;
void func()
{
cout<<"调用了C的func()函数。\n";
}
};
int main()
{
//在没有指明的情况下,派生类有重名变量或函数,基类的会构造但不会被调用。
C c;
cout<<"C::m_a的值为:"<<c.C::m_a<<endl;
cout<<"B::m_a的值为:"<<c.B::m_a<<endl;
cout<<"A::m_a的值为:"<<c.B::A::m_a<<endl;
c.C::func();
c.B::func();
c.B::A::func();
}
输出:
C::m_a的值为:30
B::m_a的值为:20
A::m_a的值为:10
调用了C的func()函数。
调用了A的func()函数。
调用了A的fun()函数。
发表回复