自学内容网 自学内容网

C++:从小白到基础(一)

此文只介绍与C语言不同或有扩展的地方(即本文的基础是你已经系统的学习了C的基础语法)。

C++的初步介绍

C++是基于C进行开发的,不仅有着超高的运行效率,还有着诸多被封装好的库,这大大加强了C++的开发效率。

现在C++主要运用在游戏开发,嵌入式系统开发等领域。

以下是C++的关键字
在这里插入图片描述
关于具体介绍请看以下链接
https://blog.csdn.net/wuxinliulei/article/details/9787901

面向对象

类(class)

类可以封装数据和操作这些数据的函数(方法)。
与 C 语言的结构体相比,类可以有成员函数,并且可以控制成员的访问权限。

构造函数和析构函数

构造函数用于在创建对象时初始化对象的状态。
析构函数在对象销毁时自动调用,用于释放资源。

继承

C++ 支持类的继承,可以从一个基类派生出新的类,继承基类的成员和行为。

多态

通过虚函数实现多态性,允许使用基类指针或引用来调用派生类的函数。

虚函数:在基类中使用关键字 “virtual” 声明的成员函数。当一个类中包含至少一个虚函数时,这个类就被称为多态类型。
C++ 通过虚函数表(vtable)来实现虚函数的动态绑定。每个包含虚函数的类都有一个对应的虚函数表,这个表是一个指针数组,存储了该类中所有虚函数的地址。每个对象都有一个指向其所属类的虚函数表的指针,通常称为虚函数指针(vptr)。
当通过基类指针或引用调用虚函数时,程序会根据对象的虚函数指针找到对应的虚函数表,然后在表中查找要调用的函数地址,从而实现动态绑定。

引用

C++ 引入了引用的概念,它是一个变量的别名。
在函数参数传递和返回值时非常有用,可以避免不必要的拷贝。

函数重载

C++ 允许定义多个同名函数,但参数列表不同,这称为函数重载。

默认参数

C++ 允许为函数的参数设置默认值,在调用函数时如果没有传入该参数的值,则使用默认值。

异常处理

C++ 提供了异常处理机制,用于处理程序运行时的错误情况。

命名空间(namespace)

命名空间用于避免命名冲突,可以将代码组织到不同的命名空间中。

模板(template)

泛型编程
模板允许编写通用的代码,可以适应不同的数据类型。
包括函数模板和类模板

标准模板库(STL)#

C++ 提供了丰富的标准模板库,包括容器(如向量、列表、集合等)、算法(如排序、查找等)和迭代器。

与C的扩展(C有但是和C++不同的)#

新增数据类型

C++ 新增了布尔型(bool),宽字节型(wchar_t)。
宽字节型用于处理宽字符集,如 Unicode 字符。

const 限定符的差异

C 语言中,全局的 const 具有外部链接,在多个文件中使用时需要使用 extern 关键字进行声明。
C++ 中,全局 const 具有内部链接,每个包含该声明的文件都会获得一份 const 变量的备份。默认情况下,C++ 中的 const 变量是不可修改的,并且在编译时会进行常量折叠。

结构体的扩展

C 语言中的 struct 结构体只能包含数据成员,不能包含函数成员。结构体变量的定义需要先声明结构体类型,然后再定义变量。

C++ 中的 struct 结构体可以包含成员函数、构造函数、析构函数、友元等,与类的功能类似,但默认的成员访问权限是 public(类默认是 private。

输入输出流

C++ 的输入输出流:
C++ 使用输入输出流(iostream 库)来进行输入输出操作,提供了 cin、cout、cerr 等对象,操作更加方便和灵活。输入输出流可以自动识别数据类型,并且支持格式化输出和输入。
C 语言使用 printf、scanf 等函数来进行输入输出操作,需要指定格式说明符,并且对于不同的数据类型需要使用不同的格式说明符。


原文地址:https://blog.csdn.net/zh060515/article/details/142914123

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!