既可以处理底层事务(访问内存
也可以处理高层事务(面向对象
C++
+:面向对象
+:STL(容器)
C++:
支持全部C语言的语法
在C语言基础上支持面向对象
JAVA虚拟机:一次编译,到处执行
C++ QT :一次编程,到处编译
1)交叉编译:跨平台编译,在A系统下编译B系统的程序
2)预处理,编译,汇编,链接
C++运行效率极快
面向过程(C)
按照步骤一步一步完成
重点:算法,更接近计算机执行的方式
执行效率高,开发效率低
面向对象(C++)
根据对象需求直接打包
方便用户使用,用户只需要调用接口
重点:对象
处理对象与对象之间的关系
开发效率高,执行效率低
命名空间 namespace
useing namespace
命名空间可以区别全局区的同名变量和同名函数
只能在全局空间创建命名空间
双冒号 :: /*作用域限定符*/连接作用域
cout << << endl
<< : 流输出运算符
endl : 换行符
cin >>
>> : 流输入运算符
cin不能输入空格
直接用cin.get函数输入
引用 &
引用作为函数参数
/*
指针直接操作内存,引用没有操作内存,比指针更安全
传参方式更加直观
*/
引用作为函数返回值
//当函数的返回值用来当左值的时候用引用作为函数的返回值
数据类型 + & + 被引用变量名
应用场景与指针类似
给一个变量取别名
/*
使用引用时必须初始化
必须保持数据类型一致
引用初始化完毕后,不可以在更改
不能定义引用的引用
不能引用NULL;
如果用const引用一个非const变量,原变量名可以修改,引用不可以修改
*/
C++的类型转换
static_cast<数据类型>();
C++数据类型转换更加安全
new delete
代替malloc和free函数
使用new申请空间时可以对其值进行初始化
int * pint = new int(100);
delete pint;
申请连续空间时使用new int[]
连续空间初始化在后面加{};
销毁时delete必须加[];
与malloc和free的区别
/*
new和delete是C++的运算符,malloc和free是函数
malloc申请空间失败会返回NULL;
new可以初始化,malloc不可以初始化
new会调用构造函数, delete前会调用析构函数
*/