选择题   有如下程序:
    #include<iostream>
    using namespace std;
    class Base
    {
    private:
    void fun1() const{cout<<'fun1';}
    protected:
    void fun2() const{cout<<'fun2';}
    public:
    void fun3() const{cout<<'fun3';}
    };
    class Derived:protected Base
    {
    public:
    void fun4() const{cout<<'fun4';}
    };
    int main()
    {
    Derived obj;
    obj.fun1();    //①
    obj.fun2();    //②
    obj.fun3();    //③
    obj.fun4();    //④
    return 0;
    }
    其中有语法错误的语句是______。
 
【正确答案】 B
【答案解析】此题考查的是保护继承。因为Derived以protected方式继承了Base类,所以父类Base中的公有成员和保护成员均成了Derived类的保护成员,而Base类的私有成员Derived类不可访问。所以,主函数中通过Derived类的对象只能够访问到Derived类的公有成员。