为什么在派生类中无法访问受保护的对象

时间:2019-05-19 05:15:09

标签: c++

我正在研究可访问性。 我取得了超级A类,并派生了B类。 A具有受保护的函数f2(),而B具有公共函数bf1()。 但是当我在B :: bf1()中创建一个ob(1)时,无法访问ob.f2()。 我找不到保护功能无法访问它的原因。

enter code here

class A
{
protected:
    void f2();
...
};

class B : public A
{
public:
    void bf1();
...
};


B::bf1()
{
    f2(); // this is not error and I know why
    A ob(1); // I made A type object
    A.f2() // this is error and I don't know why
....
}

在其他函数中,错误消息仅是“无法使用指针或对象访问功能A :: f2”,但在错误消息中,错误消息是“它无法使用指针或对象访问受保护的功能A :: f2对象”。

0 个答案:

没有答案