1. 为何要导入标准命名空间?答:预防重名,避免歧义,避免命名冲突
2. 生命周期是什么?答:占用的内存,即为作用域:作用范围
3. 函数的作用?答:减少代码量。
4. 最常用的格式符:setw和setprecision 头文件为include<iomanip>
5. 什么是内联函数?答:方便,模板化,提高了程序执行效率。在函数返回值类型之前加上关键字inline就行。定义内联函数时候要满足1.函数体简单短小2.被频繁调用3.注意,在递归和多重循环不能使用。在编译阶段直接替换,直接函数体替换函数名,去掉了函数的调用。
6. 函数的重载问题。答:允许多个函数具有相同的名字称为函数的重载。但是具有不同的参数类型或者不同的参数个数函数。重载函数必须要有不同的形式参数表。即为相同功能只有一个函数名。
7. 函数模板。函数模板可以设计出通用的函数,这些函数可以接受任意类型的参数,可以返回任意类型的值,而不需要对所有可能的数据类型进行重载。也就是说,它忽略了函数返回类型和参数类型。具体形如:template<类型参数表>返回值类型 函数名 (形式参数表)
8. 整型常量:字面常量,枚举(默认为从0开始往下) const/#define/enum(只能写标识符)
9. 什么是变量?答:变量有三点:变量名、变量值、变量地址、
10. New运算符用于分配存储空间,delete运算符用于释放存储空间。<数据类型名> <指针变量名>;<指针变量名>=new<数据类型名>.delete<指针变量名> 特别注意释放动态数组的时候要在前面加括号。
11. 类与对象。面对对象的三大主要特征:封装、继承、多态、还有一个抽象。抽象指的是将一个事物不需要的属性和行为去除掉,保留与所构建的系统有关的属性和行为的过程。封装指的是将一个事物对外联系的属性和行为暴露出来,同时隐藏与内部运行机制有关的属性和行为的方法。继承是一类事物与另一类事物之间的联系,它是一种在保留一类事物属性和行为的基础上进行某些改变,从而生成新的一类事物的方法。它也是将一个广泛的概念转向更特定化的过程。广义的多态是指一段程序能够处理多种类型对象的能力;狭义的多态指的是不同对象能够针对相同消息作出不同的行为响应。类的功能:将数据与操作行为/函数/功能封装在一起。(即为类的封装功能)
12. ::符号是作用域分辨符,它可以用来限定符号右边的成员属于左边的类,以防止在同一作用域下成员同名的情况发生。
13. 类的大小取决于类的成员或属性,还与字节对齐有关。代码和函数不占空间,也就是说类的大小由成员变量决定的。类的成员函数/操作/行为/功能/接口。Cpu一次最多取4个字节。在结构体中,字节小的放在前面。字节:整个结构体大小,与最大的字节数成倍数。
14. 类的定义只是构造了一种具有数据和行为的数据类型,需要定义类的对象才能使用,定义对象的形式如下: 类名对象名列表。操作对象是通过操作对象的成员来实现的,形式如:对象名.成员变量。
15. 数据类型:1.内置数据类型2.自定义类型(用户自己创立的)
16. 类的构造函数是一个特殊的成员函数,它的名称必须与类名相同,不能有返回类型,通常为共有函数。函数名与类名一致。在对象生成时被调用,作用:初始化类的成员变量。
17. 默认构造函数:对象生成时,会默认调用的构造函数,如果没有定义,系统会默认生成一个。调用:1.未带参数2.带参数,但是所有参数都有默认值。*特别注意,两者不能同时出现,否则会产生歧义。
18. 转换构造函数。1.带参数的构造函数2.至少有一个参数没有默认值3.作用:提供其他数据类型到自身数据类型的转换。
19. 析构函数,是一个尔特殊的成员函数,它的名称必须是由类名前面加上一个~符号组成,不能有返回类型,不能有任何参数,通常为公有函数。目的:在对象是生命周期结束时被调用,主要用来释放对象所占有的资源。但凡申请了则一定要释放空间,不然会造成系统崩溃。
20. 指针(p)是常量,指针指向的值(*p)是变量。
21. 拷贝构造函数,它在使用一个已有对象去初始化另一个新生成的对象是被调用。1.只有一个参数2.参数是自身类的引用。
22. 引用就是变量的别名。
23. 函数的调用方式大概有三种:1.值传递:形参是是实参的拷贝,形参的改变不会影响实参。优点:操作方便,缺点:拷贝大对象时要更大的开销,即内存空间。2.引用传递。形参是实参的引用,实参会随形参的改变而改变。优点:操作方便,不会出现大对象拷贝。缺点无。3.指针传递。形参是实参的地址拷贝,实参随形参的改变而改变。优点:不出现大对象拷贝,缺点:操作不方便。
24. 对象指针。对象的成员变量是连续的存放在内存中的,其连片存储区域的首地址可以代表整个对象。->运算符。
25. 继承的概念。是指新的类从已有的类中获取属性和方法的过程。目的是为了解决代码冗余和代码扩展。
26. 虚基类。多重继承会产生多个父类对象。加virtual来避免。
27. 一个空类的定义:默认构造函数、拷贝构造函数u、析构函数、赋值运算符。
28. 虚函数:父类调用子类方法。