单选题 有如下程序:
#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
【答案解析】[解析] 由于基类:Base中私有成员函数fun1()在派生类中不可见,显然①是错的,保护继承后,基类中原来的公有成员函数和保护成员函数都变为保护成员函数,通过对象只能访问其公有成员函数,②、③也是错的,选项B符合题意。