![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C++知识点
文章平均质量分 65
安心学编程
越努力,越幸运!
展开
-
C++ | vector模拟实现
【代码】C++ | vector模拟实现。原创 2024-04-06 20:36:43 · 452 阅读 · 0 评论 -
C++ | string模拟实现
【代码】C++ | string模拟实现。原创 2024-04-04 18:08:11 · 313 阅读 · 0 评论 -
C++ | string类学习 | string的常见接口使用方式
string字符串是表示字符序列的类;标准的字符串类提供了帮助对此类对象的支持,其接口类似于标准字符容器的接口,但添加了专门用于操作单字节字符字符串的设计特性;string类是使用char(即作为它的字符类型,使用它的默认char_traits和分配器类型);string类是basic_string的模板类的一个实例,它使用char来实例化basic_string模板类,并使用char_traits和allocator作为basic_string的默认参数;原创 2024-04-04 17:35:42 · 785 阅读 · 0 评论 -
C++ || C/C++内存管理 | C++动态内存管理方式 | operator new/delete函数 | new和delete实现原理 | 定位new表达式 | 内存泄漏
类名* 地址名 = new 类名[];调用operator new函数申请空间;在申请的空间上执行构造函数,完成对象的构造。内存泄漏,是指因为疏忽或者错误造成程序未能释放已经不再使用的内存的情况。内存泄漏并不是指在物理上的消失,而是应用程序分配某段内存后,因为设计错误,失去了对该段内存的控制,因而造成了内存的浪费。原创 2024-02-05 21:00:56 · 1091 阅读 · 9 评论 -
C++ | 再谈构造函数 | Static成员 | 友元 | 内部类 | 匿名对象
初始化列表特性:每个成员变量在初始化列表中只能出现一次(初始化只能初始化一次);类中包含以下成员,必须放在初始化列表位置进行初始化:引用成员变量(引用必须在定义的时候初始化)、const成员变量(定义之后就不能修改)、自定义类型成员(且该类没有默认构造函数);尽量使用初始化列表初始化,因为不管是否使用初始化列表,对于自定义类型成员变量,一定会先使用初始化列表初始化;成员变量在类中声明次序就是其初始化列表中初始化顺序,与其在初始化列表中的先后次序无关;如果没有默认构造,编译器会编不过,所有的成员变原创 2024-02-05 12:38:09 · 948 阅读 · 7 评论 -
C++ || 类的八种函数 | 默认成员函数 | 构造函数 | 析构函数 | 拷贝构造函数 | 赋值运算符重载 | const成员函数 | 取地址及const取地址操作符重载
构造函数属于默认成员函数。如果类中没有显式定义构造函数,则C++编译器会自动生成一个无参的默认构造函数;如果显示定义,则编译器不自动生成;编译器自动生成的构造函数对内置类型不做处理,对自定义类型成员调用它的默认成员函数;默认构造函数可被认为有(以下三种只能出现一种):无参的构造函数、全缺省构造函数、编译器默认生成的构造函数。建议使用全缺省构造函数。声明和定义分开,全缺省构造函数中的缺省参数应该写在函数的声明部分,而定义部分不需要写原创 2024-02-01 08:15:01 · 1065 阅读 · 25 评论 -
C++ | C++11中 基于范围的for循环 详细讲解
对于一个有范围的集合而言,由程序员来说明循环的范围是多余的,计算机都应该知道一个数组的范围了,而自己还要告诉他,也就是很麻烦,有时候还容易犯错。对于类而言,应该提供begin和end的方法,begin和end就是for循环的迭代的范围。例如 : for(“数据类型”“变量名称”“ : ” “数组名称”)对于数组而言,就是数组中的第一个元素到最后一个元素的范围。因而C++11中引入了基于范围的for循环。原创 2024-01-24 21:18:01 · 541 阅读 · 1 评论 -
C++ | auto是什么意思?如何使用?详细讲解
在使用auto时,编译器只会堆第一个类型进行推导,然后用推导出来的类型定义其他变量。在同一行定义多个变量是,这些变量必须是相同的类型。auto “变量名称” = “赋值的内容”;原创 2024-01-24 21:12:35 · 733 阅读 · 1 评论 -
C++ | inline 内联函数是什么意思?【面试题】宏优缺点?详细讲解
Inline对于编译器而言只是一个建议,不同编译器关于inline实现机制可能不同,(假如在调用一个指令很长的函数时,即使你使用了inline内联函数,但是如果这个函数超过了这个编译器的规定线时,编译器会忽略这个inline特性);Inline是以空间换时间;但是这里的空间注意并不是内存的空间,而是可执行程序的空间变大了;在编译阶段,会用函数体替换函数体替换函数调用。叫做内联函数,编译时C++编译器会在调用内联函数的地方展开,没有函数调用建立栈帧的开销,内联函数提升程序的运行效率。原创 2024-01-24 21:02:23 · 478 阅读 · 0 评论 -
C++ | 引用是什么意思?引用与指针的不同点?详细讲解
语法概念上,引用就是一个别名,没有独立空间,和其他引用实体公用同一块空间;编译器不会为引用变量开辟内存空间,它和它引用的变量共用同一块内存空间。底层实现上,引用实际是有空间的,因为引用是按照指针方式来实现的。例如:李逵,AKA“铁牛”“黑旋风”,都是同一个人。类型& 引用变量名(对象名)=引用实体。先初始化变量,再const引用 常量。原创 2024-01-24 20:55:55 · 699 阅读 · 0 评论 -
C++ | 函数重载是什么意思?【面试题】C++支持函数重载的原理是什么?详细讲解
一个词有多种含义,可以通过上下文来判断该词的真实含义,即该词被重载了。函数重载:是函数的一种特殊情况,C++允许在同一作用域中声明几个功能类似的同名函数,这些同名函数的(参数个数、类型、类型顺序)不同,常用来处理实现功能类似数据类型不同的问题。注:函数重载时返回值的类型可以相同也可以不同。原创 2024-01-24 20:44:24 · 439 阅读 · 0 评论 -
C++ | 缺省参数什么?如何使用?详细讲解
半缺省参数必须从右往左依次给出,不能间隔给;缺省参数不能在函数声明“.h”和函数定义“.cpp”中同时出现;不能跳跃传值;缺省参数必须是常量或者全局变量;C语言不支持。原创 2024-01-24 20:34:34 · 441 阅读 · 0 评论 -
C++ | 什么是命名空间?命名空间的详细讲解
在C/C++中,变量、函数和后面要学到的类都是大量存在的,这些变量、函数和类的名称将都存在于全局作用域中,可能会导致很多冲突。使用命名空间的目的是对标识符的名称进行本地化,以避免命名冲突或名字污染,namespace关键字的出现就是针对这种问题的。原创 2024-01-24 19:11:25 · 499 阅读 · 0 评论