有如下程序: #include<iostream> using namespace std; class Base { private: void fun1() const{cout<<"fun1";} protected: void fun2() con

admin2020-07-30  22

问题 有如下程序:
#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() corot{cout<<"fun4";}
};
int main()
{
Derived obj;
obj.fun4();//①
obj.fun2();//②
obj.fun3();//③
obj.fun4();//④
return 0;
}
其中有语法错误的语句是(    )。

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

答案B

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

最新回复(0)