这是一个面试问题。我不是C++专家,所以我需要一些帮助来找到该问题的答案(我首先想了解这个问题...这是一个有效的问题吗?)

问题:



谢谢!

最佳答案

我认为

  • 您无法更改A的定义
  • 您想从A对象中访问应该从B中选择哪些方法的
  • using指令解决了您的问题。例子:
    class A
    {
    public: // or protected for that matter
        void foo();
        void bar();
    };
    
    class B : private A // or protected, depending on whether
                        // you want subclasses of B to expose
                        // some methods from A themselves
    {
    public:
        using A::foo;
    };
    

    使foo可以从B类使用,但不能使用bar。但请注意,using A::foo将暴露foo的所有重载。

    关于C++ : restrict access to the superclass' methods selectively?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5245499/

    10-14 09:11
    查看更多