马上要考研复试了,今天来总结一些C++的知识点。
1.关于重载、重写、重定义的区别:
重载:用同一个函数名定义不同的函数,当函数名和不同参数搭配时函数含义不同。
规则:
- 函数名相同。
- 参数个数不同,参数类型不同,参数顺序不同,均可以构成重载。
- 仅仅只有返回值类型不同不能构成重载。
重写(覆盖):指派生类函数覆盖基类函数。
规则:
- 不同的范围,分别位于基类与派生类中。
- 函数名字相同。
- 参数相同。
- 基类函数必须含有virtual关键字。
重定义(隐藏):是指派生类和函数屏蔽了与其相同名的基类函数。
规则:
- 如果派生类的函数和基类的函数同名,但是参数不同,此时,不管有无virtual,基类的函数被隐藏。
- 如果派生类的函数与基类函数同名,并且参数也相同,但是基类函数没有virtual关键字,此时,基类的函数被隐藏。
2.什么是枚举(enum):
enum类型,给出一系列固定的值,只能在其中选择一个。
3.什么是sizeof()函数:
关于sizeof()函数,sizeof不是函数,所以不需要包含任何的头文件,它的功能是计算一个数据类型的大小,单位为字节,sizeof的返回值为size_t,类型在32位操作系统下是unsigned int,是一个无符号的整数。例如:sizeof(int),返回为4,代表一个int占四个字节大小。
4.析构函数的作用以及析构和构造函数的先后顺序:
原则:
先构造父类,再构造成员变量,最后构造自己
先析构自己,再析构成员变量,最后析构父类
5.C++类中通过析构函数来完成对类对象的内存释放。
6.类成员默认属性为私有属性,即private。
7.“引用”函数参数的特点:
引用在作为函数参数的时候,引用大部分是跟指针的相同的,但是它具有传值方式的简单性和可读性,而且使用引用可以从调用的函数返回多个值。
8.简述类与对象的关系:
类是对象的抽象,对象是类的实体化。类是抽象的,对象是具体的。
9.简述函数模板和类模板:
函数模板:针对仅参数类型不同的函数。
类模板:针对仅数据成员和成员函数类型不同的类。
10.虚函数的意义:
函数是多态性的主要实现方式,利用虚函数和多态性,程序员可以处理普遍性而让执行环境处理特殊性,即使在不知道一些对象的类型的情况下(只要这些对象属于同一继承层次并且通过一个共同的基类指针访问),程序员也可以命令各种对象表现出合适这些对象的行为。
11.重载运算符必须用友元的有哪几个符号:
流运算符<<与>>都需要进行友元重载。
12.为什么构造函数可以被重载,而析构函数不能被重载:
因为构造函数可以有多个且可以带参数,但析构函数只能有一个,且不能带参数。
13.重载的作用:
同一个函数完成不同的功能(这里的同一个函数通过相同的函数名体现)。即在编译时,不会出现不知道到底在调用相同函数名中哪一个函数的情况。
14.赋值运算与拷贝构造的区别:
拷贝构造函数和赋值运算符的行为比较相似,都是将一个对象的值复制给另一个对象;但是其结果却有些不同,拷贝构造函数使用传入对象的值生成一个新的对象的实例,而赋值运算符是将对象的值复制给一个已经存在的实例。