C++我学习的第一门面向对象的语言
C++是在C语言的基础上发展出来的,早起的C++甚至没有自己的编译器。众所周知,C语言是面向过程的,随着项目或者业务的复杂,C语言写起来逐渐变得复杂和耗时,这时C++带着面向对象的特性出现了。面向对象对大型项目的开发无疑带来了巨大便利,随着C++的流行,C++开始拥有了自己独立的库和标准(C++98、C++03、C++11、C++14、C++17)
和C语言的关系
- 在C语言的基础上引入了类和面向对象的概念,以及命名空间std(standard :标准命名空间)
- 兼容C(除了后来强类型有些许不同,比如void赋给int,也跟编译器实现有关)
3.为了和C语言作区分,C++的头文件可以不写.h,比如 #include,有些库的方法都是直接拷贝的C的(为了兼容不能乱搞:))
C语言的库也被加上了c以示区分,比如#include,在C++中要#include ,当然你不加C也是支持的,兼容嘛!
4.现在的C++已经非常成熟了,如果使用C++的话基本不用再管C语言的东西了,因为C语言支持的,C++几乎都支持了
5.内存分配C使用malloc和free,C++使用new 和 delete
输入输出(cin、cout)
- cout 和 cin 都是 C++ 的内置对象,而不是关键字。C++中使用endl代替\n
- 用法 cin>>变量名 count<<变量名
- C语言没有bool类型,C++引入了bool(true或false),但是count<<bool变量结果还是0或者1,(原因是bool类型的值是宏定义 本质还是int)
extern "C"
- extern 是 C 和 C++ 的一个关键字,但对于 extern "C",大可以将其看做一个整体,和 extern 毫无关系
- extern "C" 既可以修饰一句 C++ 代码,也可以修饰一段 C++ 代码,它的功能是让编译器以处理 C 语言代码的方式来处理修饰的 C++ 代码。
- 因为C语言没有重载的概念,所以在处理函数签名时的做法和C++不同,当c++引用了一个C函数时,需要使用这个关键字指明处理方式