有如下程序: #inclulde using namespace std; class Base { private: void funl() const{tout

admin2020-04-07  17

问题 有如下程序:
    #inclulde
    using namespace std;
    class Base
    {
      private:
      void funl() const{tout<<"fun1";}
      protected:
      void fun2() const{cout<<"fun2";}
      public:
      void fun30 const{cout<<"fun3";}
    };
    class Derived:protected Base
    {
      public:
    void fun4() const{tout<<"fun4";}
    };
    int main()
    {
      Derived obj;
      obj.fun1();    ∥①
      obj.tim2();    ∥②
      obj.fun3();    ∥③
      obj.fun40;     ∥④
      return 0;
    }
    其中有语法错误的语句是(    )。

选项 A、①②⑧④
B、①②③
C、②③④
D、①④

答案B

解析 此题考查的是保护继承。因为Derived以protected方式继承了Base类,所以父类Base中的公有成员和保护成员均成了Derived类的保护成员,而Base类的私有成员Derived类不可访问。所以,主函数中通过Derived类的对象只能够访问到Derived类的公有成员。
转载请注明原文地址:https://kaotiyun.com/show/z38p777K
0

最新回复(0)