C++错题归纳

1、假定指针变量p定义为"int *p=new int[30];",要释放p所指向的动态内存,应使用语句( )。(1.0分)答案:delete []p
知识点:如果释放的指针式一维数组以上
需要 delete[]指针变量名 例:delete []p;

2、关于消息,下列说法中不正确的是( )。(1.0分)
答案:消息的发送者必须了解消息的接收者如何响应消息

3、存储以下数据,占用存储字节最多的是( )。(1.0分)
答案:0.0

4、对类中常量成员的初始化是通过构造函数中给出的( )实现的。(1.0分)
答案:初始化表

5、假定AB为一个类,则执行"AB a(2), b[3], *p[4];"语句时共调用该类构造函数的次数为( )。(1.0分
答案:4次
解析:声明指针以及指针数组并不会调用构造函数,a(2)调用一次,b[3]调用3次,所以总共4次
注意:当指针被赋值就会调用构造函数
例如A *pa=new A;

6、假定AB为一个类,则执行"AB *s=new AB(a,5);"语句时得到的一个动态对象为 ( )。(1.0分)
答案: *s
s是一个指针,它指向内存中用new创建的一个动态对象。因此s指向的内容即*s代表该对象

7、面向对象方法的多态性是指( )。(1.0分)
答案:针对一消息,不同的对象可以以适合自身的方式加以响应

8、假定AA是一个类,"AA& abc();"是该类中一个成员函数的原型,若该函数存在对*this赋值的语句,当用x.abc()调用该成员函数后,x的值( )。(1.0分)
答案:已经被改变

9、要使语句"p=new int[10][20];"能够正常执行,p应被事先定义为( )。(1.0分)
答案:int (*p)[20];

10、复杂对象可以由简单对象构成,这种现象称为__聚合__。

11、若采用p->abc(y)表达式调用一个成员函数,在成员函数中使用的_this___就代表了类外的p指针。(2.0分)

12、int和float类型的数据分别占用____和____个字节。(2.0分)
答案:4 4

13、以面向对象方法构造的系统,其基本单位是____。(2.0分)
答案:对象

14、对象将其大部分实现细节隐藏起来,这种机制称为____。(2.0分)
答案:封装

15、每个对象都是所属类的一个____。
答案:实例

16、假定AB为一个类,则该类的拷贝构造函数的函数头为____。(2.0分)
AB(const AB&)

17、假定AA是一个类,"AA* abc();"是该类中一个成员函数的原型,则在类外定义时的函数头为____。(2.0分)
答案: AA* AA::abc();

18、若一个函数的定义处于调用它的函数之前,则在程序开始可以省去该函数的____语句。(2.0分)答案:声明(或原型)

19、计算函数参数顺序引起的二义性是由不同的编译系统决定的。(0.5分)√

20、指针常量可以指向相应类型的常量。√

21、下列关于虚析构函数的说法中,错误的是(1.0分)
答案:如果一个基类的析构函数被说明为虚析构函数,则它的派生类中的析构函数用virtual关键字说明后才是析构函数
虚析构函数的一般格式:virtual ~类名()
知识点:在C++中不能声明虚构造函数,但是能声明虚析构函数

22、关于多继承二义性的描述,( )是错误的;
答案:派生类和它的基类中出现同名函数时,派生类将对这个成员函数的访问可能出现二义性
知识点:如果在派生类中定义了与基类成员同名的成员,则称派生类成员屏蔽了基类的同名成员,为了在派生类中使用基类的同名成员,必须在该成员名之前加上基类名和作用域标识符”::“

23、下列有关模板的描述那些是错误的
答案:类模板即模板类

24、关于异常处理,那些说法是错误的
答案:catch子句实际上是一个特殊函数

25、假定M是一个类名,且M中重载了操作符=,可以实现M对象间的连续赋值,如"m1=m2=m3;"。重载操作符=的函数原型最好是( )。(1.0分)
答案:M& operator=(M);

26、下列关于抽象类说法中,正确的是
答案:抽象类可以作为一组子类的操作通用接口
知识点:

  1. 不能建立抽象类对象

  2. 抽象类不能用作参数类型、函数返回类型或显示转换的类型,但可以声明指向抽象类的指针变量,此指针可以指向它的派生类,进而实现多态性

  3. 如果在抽象类的派生类中没有重新说明纯虚函数,则该函数在派生类中仍然为纯虚函数,而这个派生类仍然是一个抽象类

  • 0
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值