目录
- 🎈个人主页🎈:linux_嵌入式大师之路的博客-CSDN博客
- 🎉🎉🎉欢迎 👍点赞✍评论⭐收藏
- 🤝希望本文能对你有所帮助,欢迎在评论区交流讨论!🤝
C++概述
C++是一种通用的、静态类型的、编译型的编程语言,它在C语言的基础上添加了面向对象编程(OOP)的特性,同时保留了C语言的底层控制和高性能特性。
C和C++有什么不同?
- 语法的区别:C语言是结构化编程语言,面向过程的(C也可以编写面向对象的程序)它具有简洁的语法和基本的编程结构;C++是面向对象编程语言,C++是面向对象的,除了C语言的特性外,还添加了类、对象、继承、多态等面向对象编程的概念,是C语言的超集,编写面向对象的程序更容易
- 从适用的方向:C适合要求代码体积小的,效率高的场合,如嵌入式;C++适合更上层的,复杂的; Linux核心大部分是c写的,因为它是系统软件,效率要求极高。
- 标准库:C语言的标准库主要包含了一些基本的输入输出函数(如printf和scanf)、字符串处理函数、数学函数等。而C++语言的标准库则更加丰富,包含了C语言标准库的功能外,还添加了许多支持面向对象编程的类和函数,如容器(vector、list、map等)、输入输出流(iostream)、算法库等。
- 内存管理:在C语言中,内存管理是手动进行的,包括动态内存分配(malloc和free)和显示的指针操作。而C++语言引入了自动的内存管理机制,包括运算符`new`和`delete`用于动态分配和释放内存,智能指针(smart pointer)用于更方便地管理动态内存,以及析构函数(destructor)用于对象的资源回收。
- 异常处理:C++语言支持异常处理机制,允许程序在遇到错误或异常情况时从函数中抛出异常,并提供了try-catch块用于捕获并处理异常。C语言则没有内置的异常处理机制,通常使用返回值或全局变量来表示错误状态。
- 兼容性: C++语言是C语言的超集,也就是说,符合C语言标准的代码也能在C++中编译和执行。但是,C++添加了一些新的特性和关键字,所以一些C语言的代码可能在C++中无法通过编译。
- 泛型编程: C++引入了模板(template)机制,允许在编写通用代码时使用类型参数,实现泛型编程,提高代码的重用性和灵活性。
C++新增保留字
由AT&T贝尔实验室的Bjarne Stroustrup开发,从C语言派生的,与C语言是兼容的
包括但不限于:
- class、public、private、protected、friend、operator :用于定义类、结构体以及成员访问控制权限。
- virtual、override、final:用于虚函数的声明和继承关系的调整。
- this:用于表示当前对象指针。
- new、delete:用于动态内存分配和释放。
- namespace、using:用于命名空间的定义和使用。
- static_cast、dynamic_cast、const_cast、reinterpret_cast:用于类型转换。
- template、typename:用于模板类型的定义和使用。
- explicit:用于显式构造函数,防止隐式类型转换。
- throw、try、catch:用于异常处理机制。
- using:用于类型别名的定义。
- constexpr:用于声明常量表达式。
- nullptr:用于表示空指针。
第一个C++程序
下面是一个简单的C++程序,输出"Hello, World!"到控制台:
#include <iostream>
int main() { std::cout << "Hello, World!" << std::endl; return 0; }
使用#include指令包含了"iostream"头文件,它提供了输入输出流的功能。然后,在main函数中,使用std::cout来输出文本到控制台,<<是输出运算符用于输出字符串或变量的值。最后,使用std::endl输出一个换行符,并返回0表示程序的正常退出。