相关疑难解决方法(0)

访问受保护方法的方法指针?

这段代码:

class B {
 protected:
  void Foo(){}
}

class D : public B {
 public:
  void Baz() {
    Foo();
  }
  void Bar() {
    printf("%x\n", &B::Foo);
  }
}
Run Code Online (Sandbox Code Playgroud)

给出了这个错误:

t.cpp: In member function 'void D::Bar()':
Line 3: error: 'void B::Foo()' is protected
Run Code Online (Sandbox Code Playgroud)
  • 为什么我可以调用受保护的方法但不能使用其地址?
  • 有没有办法从派生类中标记完全可访问的内容,而不是只能从派生类所述派生类中访问?

顺便说一下:这看起来很相关,但是我正在寻找一个参考指标或类似内容的地方(希望这将导致如何按照我期望的方式工作).

c++ specifications protected

13
推荐指数
2
解决办法
5710
查看次数

标签 统计

c++ ×1

protected ×1

specifications ×1