当前位置:编程学习 > C/C++ >>

C++的4道选择题

(1)下列关于虚函数与函数重载区别的叙述中不正确的是
  A)函数说明形式上不同
  B)函数重载允许是非成员函数,虚函数只能是成员函数
  C)函数重载的调用依据参数和类型的差别,虚函数则依据对象
  D)函数重载的本体可以在类外定义,虚函数不可以

(2)下面描述中体现了抽象类特性的语句是
  A)可以说明虚函数
  B)可以进行构造函数重载
  C)可以定义友元函数
  D)不能说明其对象

(3)下列关于虚基类的描述中错误的是
  A)虚基类子对象的初始化由最派生类完成
  B)虚基类子对象的初始化次数与虚基类下面的派生类个数有关
  C)设置虚基类的目的是消除二义性
  D)带有虚基类的多层派生类构造函数的成员初始化列表中都要列出对虚基类构造函数调用

(4) 以下有关类与结构体关系的叙述不正确的是
  A)结构体中只包含数据;类中封装了数据和操作
  B)结构体的成员对外界通常是开放的;类的成员可以被隐蔽
  C)用struct不能声明一个类型名;而class可以声明一个类名
  D)结构体成员默认为puhlic;类成员默认为private


追问:不好意思……第一题有点小问题想问一下。我在谭浩强教授的《C++面向对象程序设计》一书207页找到一句话:“在类外定义虚函数时,可以不加virtual”,这样看来好像D不正确
答案:
(1)下列关于虚函数与函数重载区别的叙述中不正确的是(B)
  A)函数说明形式上不同(对,明显不同,声明的关键字都不同,虚函数用virtual,而重载是参数

列表不同)
  B)函数重载允许是非成员函数,虚函数只能是成员函数(函数重载可以是成员函数,后一句对)
  C)函数重载的调用依据参数和类型的差别,虚函数则依据对象(对,重载是参数列表不同,而虚

函数是子类对象的多态性,根据不同对象调用)
  D)函数重载的本体可以在类外定义,虚函数不可以(对,前句正确,后语错,因为虚函数没有函

数体)

(2)下面描述中体现了抽象类特性的语句是(A)
  A)可以说明虚函数(对,有虚函数的是抽象类)
  B)可以进行构造函数重载(不是特性,非抽象类也可以)
  C)可以定义友元函数(不是特性,非抽象类也可以)
  D)不能说明其对象(可以说明对象,但没有实例,注意要分清什么是对象,什么是实例)


还有两条在努力写解释
1.D类的成员函数声明只能在类里,而定义可以在外面也可以在里面
2.D 对象就是类的实例 五千蚊没理解清楚这点
3.B 与个数无关
4.C struct可以声明复杂数据类型
A
C
B
B
A(?不太确定)
A(有虚函数的必然是抽象类或者基类)
A(?不太确定)
C(2者都可以)

仅供参考,楼上的答案不太负责
1 D 2 D 3 B 4 C 

上一个:C++新手指针习题
下一个:关于c++的学习

CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,