(31)有如下程序:
#include
usingnamespacestd;
classBase
{
private:
voidfunl()const{cout<<"funl";}
protected:
voidfun2()const{cout<<"fun2";}
public:
voidfun3()const{cout<<"fun3";}
};
classDerived:protectedBase
{
public:
voidfun4()const{cout<<"fun4";}
};
intmain()
{
Derivedobj;
obj。funl();//①
obj。fun2();//②
obj。fun3();//③
obj。fun4();//④
return0;
}
其中有语法错误的语句是
A)①②③④B)①②③C)②③④D)①④
(32)有如下程序:
#include
usingnamespacestd;
classBase
{
public:
voidfunl(){cout<<"Base\n";}
virtualvoidfun2(){cout<<"Base\n";}
};
classDerived:publicBase
{
public:
voidfunl(){cout<<"Derived\n";}
voidfun2(){cout<<"Derived\n";}
};
voidf(Base&b){b。funl();b。fun2();}&,lt;,/P>
intmain()
{
Derivedobj;
f(obj);
return0;
}
执行这个程序的输出结果是
A)BaseB)BaseC)DerivedD)Derived
BaseDerivedBaseDerived