C++测试一

C++测试一

简答题

  1. 说说C和C++的区别?(10分)

    1. C++从范围上基本覆盖C语言,即C++是C语言的一个超集而C语言是C++的一个子集。

    2. C语言是面向过程的编程语言,C++是面向对象的编程语言

    3. C++支持运算符重载

    4. C++支持友元函数

    5. C++支持泛型编程

  2. new/delete和malloc/free的区别?(10分)

    1. 从宏观功能上看,二者都是进行动态内存的申请和释放的,但是从性质上,二者的区别在于new/delete是C++中的关键字(不是函数),malloc/free是C语言中的函数。
  3. 从微观功能上看,new/new[]在使用时会调用类的构造函数,而malloc不会,delete/delete[]在使用时会调用类的析构函数,而free不会。

    1. 从返回值上看,new/new[]返回是对应类型的指针,而malloc则是返回的万能指针void*,使用时需要转换成对应类型的指针。
  4. 从异常机制上看,前者失败了会抛出bad_alloc,后者则是返回NULL

    1. 从申请所需的参数上看,new在意的是类型,而malloc在意的则是大小,当申请多个内存空间时,前者用的时new[],后者只需要给大小
  5. 从释放内存上看,前者new对应delete,new[]对应delete[];而后者一律用free

  6. 指针与引用的区别?(10分)

    1. 指针是实体变量,引用不是实体变量
  7. 指针可以不初始化,而引用则必须初始化

    1. 指针可以初始化为空,但引用不能
  8. 指针可以改变指向,引用则不能修改引用目标

    1. 可以定义指针的引用但是不能定义引用的指针
  9. 可以定义指针的指针,但是不能定义引用的引用

    1. 可以定义数组的引用,但是不能定义引用的数组
  10. C++四种显示类型转换和使用场合(10分)

    1. 静态类型转换:原对象和目标类型在一个方向上可以进行隐式类型转换
    2. 去常属性类型转换:只适用于去除常指针或者常引用的常属性
    3. 重解释类型转换:不同类型的指针之
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值