大挪耗

c++名字遮蔽与类作用域

#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()函数。


已发布

分类

可以收藏大挪耗一下。下载麻烦点城通网盘,站长保证下载速度,不会限速的,放心点就是了;分卷,安卓下载为txt:程序下载为url,不会下载参考不会下载。如果你想让本站活的久一点,请直接捐助

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注