背景:最近自考貌似“消停”了不少,但是C++正在如火如荼地进行着,为了纪念这段美丽而“艰辛”的时光,上次本人编纂了《自考路之C++大作战(上)》,记录了C++的基本内容,其实基本内容还有很多,自己记录在案的只是“冰山一角”。接下来记载一些基本的知识点和我至今还没搞明白的东东......
一、基础知识汇总
1、符号常量声明语句的语法格式:const 类型名 符号常量=初始表达式
2、可以用文件对象的成员函数来判别文件流当前的状态
fail,刚进行的操纵失败时返回true,否则返回false。
eof,进行输入操作时,若文件到达文件尾返回true,否则返回false。
bad,如果进行了非法操作返回true,否则返回false。
good,刚进行的操作成功时返回true,否则返回false。
3、cout << endl << X 中
“cout”是一个输出流对象,“endl”的作用是输出回车换行
“X”是一个变量,“<<”是插入运算符
4、this指针:
1)不能在程序中修改
2)不能被赋值
3)静态成员没有this指针,因为类中只有一个静态成员函数
4)this指针可以给其他指针赋值,但不能修改this指针
5、重载函数:
1)允许使用默认参数
2)为了使重载函数有意义,不要使用重载函数来描述毫无相干的函数
3)重载函数中编译时根据参数表进行选择的,包括参数的个数和类型
4)构造函数重载将会给初始化带来多种方式
6、在C++中科学计数法表示小数的方法:E(e)左右必须有数,且 E(e)的右侧只能为整数。
7、int * p[5],它是一个数组,大小是5,里面存放的数据类型是int*,也就是整形指针。所以称它为指针数组。
8、基类的共有成员和保护成员在保护派生类中都成了保护成员,其私有成员仍为基类私有。
9、内联函数是在函数定义之前加关键字inline来声明的函数,而不是定义在另一个函数体内部的函数。
10、无返回值的函数在执行完最后一条语句后,会自动返回而不必加入return语句。
11、R为n元关系,有p个元组,S为m元关系,有q个元组,两个关系的笛卡儿积是一个(n+m)元的关系,元组个数是pxq
12、数据库管理一般包括:数据库的调整、数据库的重组、数据库的安全性控制与完整性控制、数据库的故障恢复和数据库的监控。
13、公有成员提供了类对外部的接口,私有成员是类的内部实现,而保护成员不允许外界方位,但允许派生类的成员访问,这样既有一定的隐藏能力,又提供了开放的接口。
14、静态成员表示整个类范围共享的信息;必须对静态数据成员进行初始化;静态数据成员是属于类的,不能通过类的对象调用。
15、在定义类的成员变量是,如果没有使用关键字,所有成员默认定义为private私有权限。
二、模糊的东东......
1、形参:形式参数表可以包含任意多项(可以没有),当多余一项,前后两个参数之间必须用逗号分开。每个参数项由一种已定义的数据类型和一个变量标识符组成,该变量标识符成为该函数的形式参数,简称形参,形参前面给出的数据类型称为该形参的类型。
返回类型 函数名(数据类型1 参数1,数据类型2 参数2,...)
形参表
2、实参:实际参数表中的实际参数又称实参,它是一个表达式,用来初始化被调用函数的形参。因此,应与该函数定义中德形参众的形参一一对应,即个数相等且对应参数的数据类型相同。
函数名(参数1,参数2,...);
实际参数表
3、在C++语言中,实参和形参有3种结合方式:传值调用,传址调用和引用调用。
按值传递:函数参数传递过程的实质是将实参值通过栈空间一一传送给形参的过程,这种把实参表达式的值传递给对应形参变量传递方式称为“按值传递”
4、嵌套调用:在一个函数中调用其他函数的过程叫做函数的嵌套。C++ 中函数的定义是平行的,除了main()以外,都可以互相调用。函数不可以嵌套定义,但可以嵌套调用。
5、递归调用:在调用一个函数的过程中又直接或间接地调用该函数本身的这一现象,叫做函式的递归调用。
直接递归调用:在调用函数的过程中又调用该函数本身。
间接递归调用:在调用f1()函数的过程中调用f2()函数,而f2()中又需要调用f1()函数。
6、内联函数:通过在编译时将函数体代码插入到函数调用处,将调用函数的方式改为顺序执行方式来节省程序执行的时间开销,这一过程叫做内联函数的扩展。因此,内联函数实际上是一种用空间换时间的方案。
inline 函数类型 函数名(形式参数表)
{
函数体;
}
7、函数重载:是指同一个函数名可以对应着多个函数的实现,即这些函数名是相同的,但是它们的形参的个数和类型却不同,编译器能够根据它们各自的实参和形参的类型以及参数的个数进行最佳匹配,自动决定调用哪一个函数体。
8、函数模版:可以用来创建一个通用功能的函数,以支持多种不同形参,进一步简化重载函数的函数体设计。
template 〈class 类型名,class 类型名2,...〉
函数模版名
返回类型 函数名(形参表)
{
函数体;
}
9、构造数据类型也称为自定义数据类型,包括枚举、数组、结构、联合、指针、字符串、引用类型。
枚举类型:enum 枚举类型名 {枚举常量1,枚举常量2,...,枚举常量n};
数组类型:数据类型 数组名[常量表达式];(一维、二维、三维)
字符串类型:char 数组名[常量表达式]={“字符串常量”};
指针类型:数据类型 * 指针变量名=初始地址表达式;
引用类型:数据类型 & 引用变量名=变量名;
联合类型: union 联合类型名
{
数据类型1 成员名1;
数据类型2 成员名2;
...
数据类型n 成员名n;
};
10、全局变量:指定义在函数体外部的变量,能被所有函数使用
局部变量:指定义在函数或复合语句中的变量,只能在函数或复合语句中使用。
11、变量的存储分为静态存储和动态存储两大类,具体而言,分为4种:自动型(auto)、寄存器型(register)、外部型(extern)和静态型(static)。
12、构造函数:与类名相同,在建立对象是自动调用的函数。一个类可以有多个构造函数。
析构函数:在对象消失之前的瞬间自动调用的函数,其形式是:~构造函数名();
构造函数名(类名)前加上一个逻辑非运算符~,以示与构造函数相反。
一个类只有一个析构函数。
13、友元函数:声明为友元的外界对象既可以是另一个类的成员函数,也可以是不属于任何类的一般的函数,称为友元函数。友元也可以是整个的一个类,称为友元类。
friend 返回类型 函数名(形参表)
{
...//函数体
}
14、虚基类:为了解决从不同途径继承来的同名的数据成员在内存中有不同的拷贝造成数据不一致问题,将共同基类设置为虚基类。
class 派生类名:virtual 继承方式 基类名
15、运算符重载:使用一个运算符作用于不同类型的数据时导致不同的行为的这种机制称为运算符重载。
运算符重载的规则:1)重载后运算符的优先级与结合性不会改变
2)不能改变原运算符操作数的个数
3)不能重载C++中没有的运算符
4)不能改变运算符的原有语义
16、C++中不可以被重载的运算符:
. 成员选择运算符
.* 成员指针运算符
:: 作用域分辨符
?: 三目选择运算符
sizeof 计算数据大小运算符
三、心得体会
学习嘛,就是重复的过程,每一次读书都会有新的心得和体会,用在C++也是,课本就不说了,说说做真题吧,每一套中的题型都是固定的,考察的知识点也都是大同小异,操作题也一样,基本操作,简单应用,综合运用。多做几套题,就能找到其中的联系,哪里是考察的重点,哪里是考察的难点,在做过多套题之后,自己都能一目了然了......
就像米老师常说的学习的必备神器:读万卷书,行万里路,阅人无数,名师指路,自己去悟
下个星期就是上“战场”的时候了,小伙伴们,好好加油啦......