计算机考研复试常问问题 编程语言篇

1、封装、继承和多态(面向对象的三大特性)

  • 封装:使数据和操纵数据的方法封装为一个整体,把对象的设计者和使用者分开,使用者不必知道其内部细节。增加了安全性。
  • 继承:一个类可以继承其他类的全部属性和方法,并且可以修改和扩充。增强了代码的复用性。
  • 多态:同一消息被不同的对象接收会产生不同的行为。增加了扩展性。

2、指针和变量的自增自减有什么区别?

  • 变量:一个具体的数值。
  • 指针:一个变量的地址。
  • 指针自增自减改变的是指针指向的地址;变量自增自减改变的是变量的值

3、宏定义和操作符

  • 操作符:编程语言中定义的对数据进行某种操作的特殊字符。
  • 宏定义:c语言中的预处理命令,起替换作用,不做任何计算,不占用内存空间和编译时间。

4、虚函数和纯虚函数

  • 虚函数:在某个基类中被声明为virtual,并在某个派生类中被重新定义的成员函数。
  • 纯虚函数
    • 一种特殊的虚函数。
    • 用来定义暂时没有意义的操作,需要派生类在继承时给出具体定义。
    • 含有纯虚函数的类被称为抽象类,它不能生成对象。

5、引用和值传递的区别

  • 值传递传递的是一个值的副本,函数对形参进行操作不会改变实参的值。
  • 引用传递的是引用对象的内存地址,函数对形参进行操作就是对实参进行操作。

6、指针和引用的区别

  • 引用在定义时被初始化后,就不能改变了;指针可以改变。
  • 引用不能为空;指针可以为空。
  • 程序不需要为引用分配内存空间;程序需要为指针分配内存空间。
  • 指针自增是指针变量的自增;引用自增是变量值的自增。

7、面向对象和面向过程的区别

  • 面向过程
    • 是一种以过程为中心的编程思想,强调事件的流程和顺序。
    • 思想:需要实现一个功能的时候,看重的是开发的过程和步骤,每一个步骤都需要自己亲力亲为。
    • 例如:吃饭。需要买菜、洗菜、切菜、煮饭、炒菜...
    • 程序=算法+数据
  • 面向对象
    • 是一种以对象为中心的编程思想,强调事件的角色和主体。
    • 思想:需要实现一个功能的时候,看重的并不是过程和步骤,而是关心的是对象,对象能做什么。
    • 例如:吃饭。找饭店,饭店提供饭菜,我们不需要关心煮饭做菜的过程。
    • 程序=对象+消息

8、类与结构体的区别

  • 结构体是一种值类型;类是一种引用类型。值类型用于存储数据的值;引用类型用于存储对实际数据的引用。
  • 结构体使用栈存储;类使用堆存储。
  • 结构体是一种包含了不同类型数据的包装;类是一种反应现实事物的抽象。
  • 结构体没有析构函数;类有析构函数。
  • 结构体不可以继承;类可以继承。

10、C++覆盖与隐藏

  • 覆盖:子类在继承时,对父类中的虚函数进行重写,父类中的该函数就会被覆盖。
  • 隐藏:子类在继承时,对父类中的普通函数进行重写,父类中的该函数就会被隐藏。

11、C++支持参数个数不确定的函数吗?

  • 可以通过隐藏参数机制来支持参数个数不确定的函数。
  • 用...代替未知的参数,调用时只处理所知道的参数。

12、内联函数

  • 程序在编译时,被调用的内联函数会直接被其函数体给替代。
  • 内联函数中不允许有循环语句和switch语句。

13、静态函数

  • 静态函数是static修饰的函数,只属于类,不属于对象。
  • 静态函数只能访问静态成员变量。
  • 可以通过类名直接访问。

14、重载和重写

  • 重载:在同一个类中,有多个名称相同,但是参数列表不同的函数。减轻了程序员记忆功能相似的不同函数名字。
  • 重写:子类对从父类继承的方法进行改造。

15、函数模板

  • 函数模板不是一个具体的函数,没有指明确定的返回值类型和形参类型,而用一个虚拟的类型来表示。
  • 函数模板只是一个对函数功能框架的描述。
  • 当它在具体执行时,将根据传递的实际参数类型决定其功能。

16、类模板

  • 一个通用类,其数据成员的类型,成员函数的返回值类型和形参类型不具体指定,而用一个虚拟的类型来表示。
  • 使用类模板定义对象时,系统会根据实参的类型来取代类模板中的虚拟类型,从而实现不同类的功能。

17、泛型编程

  • 以独立于特定类的方式编写代码,针对不同的类型提供通用的方法。
  • 实现方法:函数模板和类模板。

18、#define和typedef的区别

  • 两个都是起别名,但#define是在预编译的时候处理的;typedef是在编译的时候处理的。
  • 1
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

恣睢s

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值