将参数作为基类的类型传递时,访问基类的受保护成员

时间:2019-01-29 10:49:35

标签: c++ protected

以下示例将说明我的问题:

class BASE {
protected:
    int member;
};

class FOO: public BASE {
    void foo(BASE * b) {
        //No Access
        b->member++;
    }
    void bar(FOO *b) {
        //Access
        b->member++;
    }
};

Example on gcc.godbolt.org

据我所知:类FOO中的函数可以访问基类BASE的受保护成员。这就是FOO::bar可以访问b-> member的原因。

但是如果函数FOO::foo作为自变量BASE::member的指针传递,为什么函数BASE无法访问companyId

0 个答案:

没有答案