C++考研初试简答题整理

本文整理了C++考研中的重要简答题,涵盖了指针与引用的区别、封装、继承、多态、虚函数、构造函数类型、继承方式、函数声明与定义的差异、复制构造函数的使用场景、抽象类的意义及限制、ASCII与二进制文件区别、函数模板的用途、虚析构函数的重要性等核心概念,旨在帮助考生掌握C++基础和进阶知识。
摘要由CSDN通过智能技术生成

简答题

指针和引用的区别

  1. 区别:

A.引用定义时必须初始化。指针没有要求

B.引用一旦引用了某个实体,不能再引用其他实体。指针可以在任何时候改变指向。

C.没有NULL引用,但是有NULL指针。

D.sizeof可以获取指针存储空间的大小,而sizeof引用获取的是引用对象的存储空间的大小。

E.没有多级引用,但有多级指针。

F.访问实体的方式不一样,指针需要显式解引用。

G.引用比指针使用起来更安全

封装、继承、多态

  1. 封装定义:

封装就是将抽象对象的属性和行为特征结合。形成类,数据(属性)和函数(行为 特征)都是类的成员。目的是让类的设计者和使用者分开,提高软件的维护性。

封装特性:

a.结合性:属性和方法结合

b.隐蔽性:利用接口机制隐藏内部实现。只留接口给外部使用

c.实现代码的可实用性。

  1. 继承定义:

指新类从原有类那里得到已有的特性,原有类成为基类或父类,产生的新类为子类或派生类。

  1. 多态

静态多态:是编译器在编译期间完成的,编译器根据函数实参(可能会进行隐式类型转换)确定调用哪个函数。静态多态有两种实现方式,分别是函数重载和函数模板。

动态多态:在程序执行期间(非编译时期)判断所引用的对象的实际类型,然后根据其实际的类型调用相应的方法。动态多态是通过继承+虚函数实现的。即在基类 中将子类需要重新实现的方法使用virtual修饰为虚函数。然后在子类中进行重写。 最后用指向子类对象的父类指针调用该虚函数,将进行动态绑定调用子类重写后的方法。

总结:封装可以使得代码模块化,继承可以扩展已存在的代码,他们的目的都是为了代码重用。而多态的目的则是为了接口重用。

虚函数和纯虚函数的作用

虚函数:虚函数的主要作用就是“运行时多态”,父类中提供默认的函数实现,子类可以重写父类的虚函数从而实现子类的特殊化。

纯虚函数:

  1. 包含纯虚函数的类称为抽象类。抽象类不能进行实例化,只有实现了这个虚函数的子类才能实例化。
  2. 在基类中为其派生类保留一个函数的名字,以便派生类根据需要对它进行定义。从而实现“运行时多态”
  3.  纯虚函数作为接口而存在。纯虚函数不具备函数的功能,一般不能直接被调用。

重写、重载、重定义(隐藏)的定义和区别

  1. 重载:重载是应用于相同作用域的同名函数,由于参数列表不同而产生不同实现的 函数。
  2. 重写:子类重新定义父类中有相同名称和参数的虚函数。函数特征相同,但是实现 不同,主要是在继承关系中产生的。
  • 3
    点赞
  • 45
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值