- C++概述
- C++两大编程思想
- 面向对象
- 泛型编程
- 移植性和标准
- ANSI 在1998制定出C++第一套标准
- c++初识
- 引入头文件 #include <iostream> 标准输入输出流
- 使用标准命名空间 using namespace std;
- 标准输出流对象 cout << “..” << 1234 << 3.14 << endl;
- 面向对象三大特性
- 封装、继承、多态
- 双冒号作用域运算符
- ::代表作用域 如果前面什么都不添加 代表全局作用域
- namespace命名空间
- 命名空间用途:解决名称冲突
- 命名空间下可以存放 : 变量、函数、结构体、类…
- 命名空间必须要声明在全局作用域
- 命名空间可以嵌套命名空
- 命名空间是开放的,可以随时将新成员添加到命名空间下
- 命名空间可以匿名的
- 命名空间可以起别名
- using声明以及using编译指令
- using声明
- using KingGlory::sunwukongId
- 当using声明与 就近原则同时出现,出错,尽量避免
- using编译指令
- using namespace KingGlory;
- 当using编译指令 与 就近原则同时出现,优先使用就近
- 当using编译指令有多个,需要加作用域 区分
- C++对C语言增强以及扩展
- 全局变量检测增强
- int a ;
- int a = 10; C下可以,C++重定义
- 函数检测增强
- 函数的返回值
- 形参类型
- 函数调用参数个数
- 类型转换检测增强
- char * p = (char *)malloc(64) C++下必须等号左右一致类型
- struct 增强
- C++可以在结构体中放函数
- 创建结构体变量 可以简化关键字struct
- bool数据类型扩展
- C++才有bool类型
- 代表真 --- 1 true 假 ---- 0 false
- sizeof = 1
- 三目运算符增强
- C语言下返回的是值
- C++语言下返回的是变量
- const增强
- C语言下
- 全局const 直接修改 失败 间接修改 语法通过,运行失败 保存在常量空间中
- 局部 const 直接修改 失败 间接修改 成功 保存在栈中
- C++语言下
- 全局 const 和C结论一样
- 局部 const 直接修改失败 间接修改 失败
- C++const可以称为常量
- const 链接属性
- C语言下const修饰的全局变量默认是外部链接属性(不加时)
- C++下const修饰的全局变量默认是内部链接属性,可以加extern 提高作用域
- const分配内存情况
- 对const变量 取地址 ,会分配临时内存
- 使用普通变量 初始化 const变量
- 对于自定义数据类型
- 尽量用const代替define
- define出的宏常量,没有数据类型、不重视作用域
- 引用
- 目的:起别名
- 语法: 类型(与原名类型必须一致) &别名 = 原名
- 引用必须要初始化
- 引用一旦初始化后,就不可以引向其他变量
- 建立对数组引用
- 直接建立引用
- int arr[10];
- int(&pArr)[10] = arr;
- 先定义出数组类型,再通过类型 定义引用
- typedef int(ARRAY_TYPE)[10];
- ARRAY_TYPE & pArr2 = arr;
- 参数的传递方式
- 值传递
- 地址传递
- 引用传递
- 注意事项
- 引用必须引一块合法内存空间
- 不要返回局部变量的引用(static)
- 当函数返回值是引用时候,那么函数的调用可以作为左值进行运算
- 指针的引用
- 利用引用可以简化指针
- 可以直接用同级指针的 引用 给同级指针分配空间
- 常量的引用
- const int &ref = 10;
- // 加了const之后, 相当于写成 int temp = 10; const int &ref = temp;
- 常量引用的使用场景 修饰函数中的形参,防止误操作
C++与C的不同
最新推荐文章于 2023-07-21 16:25:00 发布