- 面向对象的三大特性:封装,继承,多态;
- C++输出函数:cout<<
- <<endl:换行;
- 访问命名空间中的内容:命名空间名称::内容(变量或者函数);
- C++新增的数据类型:bool,类;
- Bool只有true(1)和false(0)两种取值,内存中一般占一个字节,不同编译器可能不同;可以当做整数来用;
- C++结构体位段:
- C++结构体可以为其成员指定所占的位数(一个字节占8位);
- 优点:节省内存空间;
- 同样具有内存对齐的特点;
- 例如:
- 强制类型转换:static_cast<要转换的类型>(要转换的数据),是一个运算符;
- 域运算符: “::”
- 访问和局部变量同名的全局变量,用::来区分;
- 用于表示类的成员;
- C++输入函数:cin>>
- new:开辟空间
- 连续开辟:p = new int[5];
- 释放空间:delete p;或delete[] p;
12.malloc和new的区别:
(1)malloc是函数,new 是运算符;
(2)malloc开辟的时候要指定空间大小,new不需要指定;
(3)malloc返回值是void*,赋值需要强制类型转换,而new不需要
(4)malloc通过free回收,new通过delete回收;
13. 类通过new开辟空间,会自动调用类的构造函数进行初始化;
14. 析构函数:回收在构造中new出来的空间;
15.delete会自动调用析构函数;
16.类的写法:
class 类名
{
访问限制(public):
属性1;
属性2;
...;
(构造函数)类名()
{...}
(析构函数)~类名()
{...}
}
17.函数重载:函数名相同,参数的类型,数量不同;
18.函数类型不同(返回值),其它都相同,不能构成重载;
19.函数重载可以在声明的时候给形参一个默认值,则该参数不需要输入;
- 内联函数:用inline修饰
- 一般适合用于不存在while和switch等复杂的结构且只有1~5行语句的小函数上,否则编译系统将该函数视为普通函数;
- 引用类型:给变量取别名:;
- int num =10;int & ret = num;
- ret和num指的是同一个东西;
- 对数组只能引用元素,不能引用数组名;
- 不能定义引用的引用;
22.引用和指针的区别:
(1)引用作为函数参数,不会重新开辟空间,和变量指的是同一块内存;指针作为函数参数,会分配一个4字节的空间;
(2)指针变量可以不初始化,但是引用一定要初始化;
(3)引用不能改变指向,但指针变量可以改变;
23.
(1)空指针:NULL;
(2)野指针:没有初始化,使用delete和free释放的指针