我正在研究可访问性。 我取得了超级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对象”。