设有程序段如下:class A{protected:int x;public:int y;};class B: A{protected:int a;public:int b;};int main(){B t;_____; //A行system("pause");return 0;}则在注释A行填入下列语句时,没有语法错误的是( )。
A. t.x=1
B. t.y=1
C. t.a=1
D. t.b=1
查看答案
有如下程序:#includeusing 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(void){Derived obj;obj.fun1(); // ①obj.fun2(); // ②obj.fun3(); // ③obj.fun4(); // ④system("pause");return 0;}其中有语法错误的语句是( )。
A. ②③④
B. ①②③④
C. ①②③
D. ①④
有如下类定义:class Base{public:int a;protected:int b;private:int c;};class Derived:public Base{protected:int d;friend void show();};在类Derived中,函数show()不能直接访问的数据成员是( )。
A. a
B. b
C. c
D. d
解决因多层派生在派生类中出现基类成员多个拷贝的方法是( )。
A. 用关键字virtual把基类成员说明为虚特性
B. 把基类说明为虚基类
C. 把基类说明为抽象类
D. 用类名和作用域运算符进行区分
运行下列程序时的输出结果是( )。#includeusing namespace std;class MyClassA{public:MyClassA( ) { cout<<"A";}};class MyClassB{public:MyClassB( ) { cout<<"B";}};class MyClassC:private MyClassA{MyClassB b;public:MyClassC( ) { cout<<"C";}};int main(void ){MyClassC t;system("pause");return 0;}
ABC
B. CBA
C. BAC
D. CAB