一、选择题
1、下列对派生类的描述中,( )是错误的。
① 一个派生类可以作为另一个派生类的基类
② 派生类至少有一个基类
③ 派生类的成员除了它自已的成员外,还包含了它的基类的成员
④ 派生类中继承的基类成员的访问权限在派生类中保持不变
2、对基类和派生类的描述中,( )是错的。
① 派生类是基类的具体化 ② 派生类是基类的子集
③ 派生类是基类定义的延续 ④ 派生类是基类的组合
3、派生类的构造函数的成员初始化列表中,不能包含( )。
① 基类的构造函数 ② 派生类中子对象的初始化
③ 基类的子对象初始化 ④ 派生类中一般数据成员的初始化
4、设置虚基类的目的是( )。
① 简化程序 ② 消除二义性 ③ 提高运行效率 ④ 减少目标代码
5、关于子类型的描述中,( )是错的。
① 子类型就是指派生类是基类的子类型
② 一种类型当它至少提供了另一种类型的行为,则这种类型是另一种类型的子类型
③ 在公有继承下,派生类是基类的子类型
④ 子类型关系是不可逆的
10、有以下类的说明,请指出错误的地方
class CSample
{
private:
int a=2.5; (A)
CSample; (B)
public:
CSample(int val); (C)
~CSample; (D)
};
12、下列关于对象数组的描述中,( )是错误的。
① 对象数组的下标是从0开始的 ② 对象数组的数组名是一个常量指针
③ 对象数组的每个元素是同一个类的对象 ④ 对象数组只能赋初值,而不能被赋值
14、具有转换函数功能的构造函数,应该是( )。
① 不带参数的构造函数 ②带有一个参数的构造函数
③ 带有两个以上参数的构造函数 ④ 默认构造函数
15、关于多继承二义性的描述中,( )是错的。
① 一个派生类的两个基类中都有某个同名成员,在派生类中对这个成员的访问可能出现二义性
② 解决二义性的最常用的方法是对成员名的限定法
③ 基类和派生类中同时出现的同名函数,也存在二义性问题
④ 一个派生类是从两个基类派生来的,而这两个基类又有一个共同点基类,对该基类
成员进行访问时,有可能存在二义性
17、关于动态联编的下列描述中,( )是错误的。
① 动态联编是一虚函数我基础的
② 动态联编是在运行时确定所调用的函数代码的
③ 动态联编调用函数操作是用指向对象的指针或对象引用
④ 动态联编是在编译时确定操作函数的
21、( )是一个在基类中说明的虚函数,它在该基类中没有定义,但要求任何派生类都必须定义自己的版本。
① 虚析构函数 ② 虚构造函数 ③ 纯虚函数 ④ 静态成员函数
二、判断题
4、单继承情况下,派生类中对基类成员的访问也会出现二义性。( )
7、解决多继承情况下出现二义性的方法之一是使用成员名限定法。( )
8、子类型是不可逆的。( )
11、如果A类型是B类型的子类型,则A类型必然适应于B类型。( )
13、构造函数说明为纯虚函数是没有意义的。( )
15、动态联编是在运行时选定调用的成员函数的。( )
请帮我看看这个c++题目#define A(n) 2*n+1,则表达式A(2+3)的值是【1...
如此题:表达式为 2+3 ,则2*n+1,把n=2+3带入替换计算便是,但是有点要注意,此处表达式2+3没有括号,因此带入后A(2+3)=2*2+3+1 = 8,而不是2*(2+3)+1。C语言笔试题经常出此类题目,如果要将A()括号内表达式的结果参加运算,则宏定义为应为:A(n) 2*(n)+1 ...
帮忙看一下这道C++的题,要是能详细解释,举一反三就更好 了
楼上答的都不对 实际运行一下,选C,因为 ClassA* pA=&aObject;ClassB* pB=&aObject;ClassC* pC=&aObject;这三行代码实际等价于:ClassA* pA=static_cast<ClassA*>(&aObject);ClassB* pB=static_cast<ClassB*>(&aObject);ClassC* pC=&aObject;存在隐式转换的,也就是说源代码等号右边...
两道C++题目 大家帮我看看啊
前一道题,a<b?a:b这个是三目运算符,先判断a<b,如果是真的就返回冒号前面的,否则返回后面的,题目中是a<b?a:c<d?c:d这个先判断后面的c<d?c:d,c=3小于d=4,所以返回c,也就是3,这样变成a
帮忙看看c++,如果错了请写一下具体理由,谢谢
3 D,A:'103' 不是字符常量也不是串常量 ,C是十六进制常量 4 B,A不对,0开头的是八进制,0786就错了 6 A ,条件相当于x,y不同时为零
帮忙解答下这道C++题目!!!~谢谢~1~
继续突破 如果号码被n整除,则n不是素数,周期可以结束。3:无效转换成int f()的函数有一个返回int类型的值。4:CIN >> A >> B,C语言区分大小写。即,A是一个不同的标识符。5:还有一个错误,你可能是错误的。错误如下:(我>正)cout <<“请”<< endl;应该的,如果(> =)...
帮忙看看这个C++题目啦!!
1、每次对数组进行一次扫描,如果发现数组元素为'@',即为有病,则将此元素的上下左右邻居设置为被传染。这里有几个细节要注意:a.下标判断-首先要判断数组下标在合法的范围内,我这里下标从0开始,因此范围为(0~n-1);b.标记问题-若该数组元素为有病(值为'@'),不能简单的将其邻居也标记为'...
请大家帮我看一下下面的这个C++程序,先谢了!
指针指向DA型数组,数组有两个成员 这是使用new的一般写法,new DA[2];创建了两个对象,分配了内存空间,只是没有变量名,把指向这两个对象的指针传给p
请各位C++高手帮我看一下这道简单的C++选择题.
c错了,析构函数 不能带任何参数。析构函数与 构造函数 相反,当对象脱离其 作用域 时(例如对象所在的函数已调用完毕),系统自动执行析构函数。析构函数往往用来做“清理善后”的工作(例如在建立对象时用new开辟了一片内存空间,应在退出前在析构函数中用delete释放)。
...要编写comp函数,有点懵逼。。。有没有人来帮我看看,题目如图...
这个是C语言自带的快排算法,comp函数就是你要排序的方式 函数原型是 int comp(const void* a,const void *b);大体的意思就是 如果你要从大到小排序,那就return *(int* a) - *(int* b)如果你要从小到大排序,那就return *(int* b) - *(int* a)当然可以更加灵活,比如按照结构体中的...
关于C++的六个问题,,想请高手帮我看看 加分..
你的第一个问题没看懂。如果想要了解数组,那么应该去看内存。你给个你看不懂的例子,我帮你看看吧。2.C++最难的,最核心的,最重要的是继承和虚函数。而C++比C好用的地方是STL。3.你先了解下new吧,其他的几个你在使用过程中会慢慢体会出来的。4.区分还是要看内存... ...5.隐式类型转换,...