1 C++概述
1.1 C++两大变成思想
1.1.1 面向对象 泛型编程
1.2 C++98标准
2 C++书写hello worl
2.1 包含头文件 #include <iostream> //标准输入输出头文件
2.2 using namespace std; //使用标准命名空间
2.3 cout << "hello world" << endl;
2.4 面向对象三大特征: 封装、继承、多态
3 双冒号作用于运算符
3.1 ::前面如果没有任何作用域,就代表全局作用域
4 命名空间 namespace
4.1 命名空间的用途:解决命名冲突
4.2 命名空间下,可以存放变量,函数,结构体,类...
4.3 命名空间必须声明在全局的作用域下
4.4 命名空间可以嵌套命名空间
4.5 命名空间是开放的,可以随时向命名空间添加新的成员
4.6 命名空间是可以匿名的
namespace
{
int a = 10;
int b = 20;
}
以上相当于:static int a = 10; static int b = 20; 匿名命名空间中的变量a和变量b只能在本文件使用
4.7 命名空间是可以取别名的
namespace veryLongName
{
int a = 100;
}
void test()
{
namespace veryShortName = veryLongName;
cout << veryShortName::a << endl;
cout << veryLongName::a << endl;
}
5 using 声明和using 编译指令
5.1 using 声明
5.1.1 声明的格式: using student::name;
5.1.2 当就近原则和 using 声明同时出现时,需要避免二义性
5.2 using 编译指令
5.2.1 using namespace std;
5.2.2 如果出现就近原则,优先使用就近原则
5.2.3 如果有多个命名空间打开,并且存在同名的变量,使用的时候需要加作用域区分
6 C++对C语言的增强
6.1 全局变量增强
6.2 函数检测增强
6.2.1 形参变量类型检测增强,函数声明的返回值检测增强,函数返回值检测增强,调用时参数传入个数检测增强
6.3 类型转换检测增强
6.4.1 malloc返回的void* 在C++下必须强转
6.4 struct 增强
C语言中,结构体里面不能放函数
C语言中,声明结构体必须加上struct关键字
6.5 bool 类型增强
C语言中,没有bool 类型
6.6 三目运算符增强
C语言中,三目运算符返回的是值 *(a > b ? &a : &b) = 10;
C++语言中,三目运算符返回的是变量 a > b ? a : b = 10; 和上面的语句等效