系统性学习C++
文章平均质量分 76
幸福西西弗斯
莫忘少年凌云志,仍许天下第一流
展开
-
C++模板 —— 万字带你了解C++模板(蓝桥杯算法比赛必备知识STL基础)
函数模板利用关键字 template使用函数模板有两种方式:自动类型推导、显示指定类型模板的目的是为了提高复用性,将类型参数化使用模板时必须确定出通用数据类型T,并且能够推导出一致的类型建议使用显示指定类型的方式,调用函数模板,因为可以自己确定通用类型T类模板中的成员函数并不是一开始就创建的,在调用时才去创建。原创 2022-11-09 16:54:07 · 2262 阅读 · 0 评论 -
C++那些事儿 —— 名字空间(三分钟带你了解using namespace std到底是个啥?)
三分钟带你理解老师不说,但初学者必会的C++命名空间。名字空间又叫名空间(命名空间),是随C++语言引入的,它相当于一个更加灵活的文件域(全局域),可以用花括号把文件的一部分括起来,并以关键字namespace开头给它一个起名字。{fun1(){};}目的是为了避免和减少命名冲突。限定修饰符花括号括起来的部分叫“声明块”,声明中可以包含类、变量(可以初始化)、函数(可以在里面定义)等,我们在域外使用ns域内成员时,需要嗲上ns前缀,后面再加上 :: (作用域运算符)原创 2022-11-04 16:39:55 · 852 阅读 · 0 评论 -
你还不进来看看C++类与对象【7】 —— 动态多态底层原理剖析&&(纯)虚析构解决父类指针不能释放子类属性问题嘛
一篇文章带你了解C++中的多态多态满足条件有继承关系子类重写父类中的虚函数多态使用条件父类指针或引用指向子类对象重写:函数返回值类型 函数名 参数列表 完全一致称为重写C++开发提倡利用多态设计程序架构,因为多态优点很多。子类中有些属性被开辟到堆区了,所以程序必须要走子类中的析构代码,如果使用多态是走不到的,所以我们才在父类中加上(纯)虚析构。使用(纯)虚析构,就是为了解决子类析构代码调用不到的问题。虚析构或纯虚析构就是用来解决通过父类指针释放子类对象如果子类中没有堆区数据,可以不写为虚析构或纯虚析构。原创 2022-11-03 00:49:53 · 629 阅读 · 0 评论 -
黑马程序员C++类和对象【6】—— 继承(一文万字带你搞懂C++继承 —— 你还不知道怎么学C++继承吗?不知道虚继承底层原理吗?)
一文万字 —— 一文带你掌握C++继承内容,包括继承成员处理,静态成员处理,多继承,以及菱形继承,手把手教你避免菱形继承两大难题,用图带你剖析虚继承底层原理。原创 2022-11-01 21:38:38 · 360 阅读 · 0 评论 -
黑马程序员C++类和对象【5】 —— 运算符重载(蓝桥杯必备知识)万字超详解
本文以通俗易懂的语言带你了解C++类和对象中的运算符重载,以及仿函数,教你如何解决程序崩溃问题,浅拷贝问题等,这些内容都是蓝桥杯C++需要会的哦~原创 2022-11-01 17:16:21 · 1355 阅读 · 0 评论 -
黑马程序员C++类和对象【4】—— 友元
生活中你的家有客厅(Public),有你的卧室(Private)客厅所有来的客人都可以进去,但是你的卧室是私有的,也就是说只有你能进去但是呢,你也可以允许你的好闺蜜好基友进去。在程序里,有些私有属性 也想让类外特殊的一些函数或者类进行访问,就需要用到友元的技术友元的目的就是让一个函数或者类 访问另一个类中私有成员友元的关键字为friend友元的三种实现全局函数做友元类做友元成员函数做友元。原创 2022-11-01 00:41:21 · 174 阅读 · 0 评论 -
C++类和对象【3】—— C++对象模型和this指针(const修饰的常函数与常对象)
this指针的用途:当形参和成员变量同名时,可用this指针来区分在类的非静态成员函数中返回对象本身,可使用。原创 2022-11-01 00:05:11 · 76 阅读 · 0 评论 -
C++类和对象【2】—— 对象特性(构造函数、析构函数、拷贝构造函数、深浅拷贝、初始化列表、类对象作为成员类、静态成员变量及静态成员函数等。)
一文带你理解C++对象特性中的构造函数、析构函数、拷贝构造函数、深浅拷贝、初始化列表、类对象作为成员类数、静态成员变量及静态成员函数等。原创 2022-10-31 22:14:04 · 251 阅读 · 0 评论 -
C++类和对象【1】—— 封装
如果我们把属性全部设置为私有,就无法在类外面直接进行修改使用,这时就需要在public里面再写一个接口用来调用属性,对属性进行读写操作。用成员函数,就需要传一个对象就好了(用一个已知的来调用,传进去一个未知的对象)人可以作为对象,属性有姓名、年龄、身高、体重...,行为有走、跑、跳、吃饭、唱歌...设计一个学生类,属性有姓名和学号,可以给姓名和学号赋值,可以显示学生的姓名和学号。具有相同性质的==对象==,我们可以抽象称为==类==,人属于人类,车属于车类。在设计类的时候,把行为和属性放在一起,表现事物。原创 2022-10-30 21:31:16 · 87 阅读 · 0 评论 -
函数高级 — 默认参数、占位参数、函数重载
函数名可以相同,提高复用性同一个作用域下函数名称相同函数参数类型不同或者个数不同或者顺序不同函数的返回值不可以作为函数重载的条件(即仅返回值不同的两个函数是不满足函数重载的,会出现二义性报错)//函数重载需要函数都在同一个作用域下(都在全局作用域下){cout原创 2022-10-30 12:37:42 · 631 阅读 · 0 评论 -
new动态创建一维数组、qsort函数、折半查找
普通数组在栈上分配内存,;如果需要存放更多的元素,必须在堆上分配内存,。动态创建一维数组的语法 :数据类型 *指针 = new 数据类型[数组长度];释放一维数组的语法:delete [] 指针;注意:动态创建的数组没有数组名,不能用sizeof运算符。(动态创建的数组没有数组名,不能用sizeof,如果一定要用的话结果为8(64位),普通创建的可以用sizeof(数组名))可以用数组表示法和指针表示法两种方式使用动态创建的数组。必须使用来释放动态数组的内存。原创 2022-10-21 15:43:31 · 608 阅读 · 0 评论 -
C++中的一维数组与指针、一维数组用于函数参数
函数原型:注意,在Linux下,使用memcpy()函数需要包含头文件。原创 2022-10-20 16:17:03 · 1132 阅读 · 0 评论 -
指针(四)- 函数指针和回调函数
回调函数是把一个函数的代码嵌入到另外一个函数中,调用函数提供了·主体的流程和框架,具体功能由回调函数来完成。在写调用函数时,只要确定回调函数的种类,不关心回调函数的功能。函数的二进制代码存放在内存四区中的代码段,函数的地址是它在内存中的起始地址。如果把函数的地址作为参数传递给函数,就可以在函数中灵活的调用其它函数。同样,声明函数指针时,也必须提供函数类型,函数的类型是指。b)让函数指针指向函数的地址;函数指针的赋值:函数指针名=函数名;,否则就成了返回指针的函数。函数名就是函数的地址。函数指针名(实参);原创 2022-10-19 13:09:37 · 579 阅读 · 1 评论 -
指针(三)- 二级指针、野指针、空指针
NULL在C++中就是0,这是因为在C++中void* 类型是不允许隐式转换成其他类型的,所以之前C++中用0来代表空指针,但是在重载整形的情况下,会出现上述的问题。所以,C++11加入了nullptr,可以保证在任何情况下都代表空指针,而不会出现上述的情况,因此,建议用nullptr替代NULL吧,而NULL就当做0使用。指针用于·存放普通变量的地址,二级指针存放的是指针的地址,以此类推,三级指针存放的就是二级指针的地址。在刚开始提到指针的时候就说过了,指针是指针变量的简称,也是变量,是变量就有地址。原创 2022-10-19 12:31:01 · 782 阅读 · 0 评论 -
指针(二)- C++内存模型、动态分配内存new和delete
如果申请失败,返回一个空地址(暂时不考虑失败的情况)。动态分配的内存生命周期与程序相同,程序退出时,如果没有释放,系统将自动回收。动态分配出来的内存没有变量名,只能通过指向它的指针来操作内存中的数据。// C++11支持{}2)用new运算符向系统申请一块内存,让指针指向这块内存。3)通过对指针解引用的方法,像使用变量一样使用这块内存。4)如果这块内存不用了,用delete运算符释放它。就算指针的作用域已失效,所指向的内存也不会释放。用指针跟踪已分配的内存时,不能跟丢。释放内存不会失败(还钱不会失败)。原创 2022-10-19 10:12:34 · 376 阅读 · 0 评论 -
一文带你理解C++的指针
如果把函数的形参声明为指针,调用的时候把实参的地址传进去,形参中存放的是实参的地址,在函数中通过解引用的方法直接操作内存中的数据,可以修改实数的值,这种方法被通俗的称为。对指针的赋值操作也通俗的被称为“指向某变量”,被指向的变量的数据类型称为“基类型”。指针存放变量的地址,因此,指针名表示的是地址(就像变量名可以表示变量的值一样)运算符,将它用于指针,可以得到该地址的内存中存储的值,*也是乘法符号,C。位的操作系统中,不管是什么类型的指针,占用的内存都是8字节。指针也是变量,是变量就要占用内存空间。原创 2022-10-17 23:11:51 · 829 阅读 · 0 评论 -
C++中的保留字、C++11的原始字面量
C++11的原始字面量原始字面量(值)可以直接表示字符串的实际含义,不需要转义和连接。语法:R"(字符串的内容)"R"xxx(字符串的内容)xxx"原创 2022-10-16 15:10:03 · 150 阅读 · 0 评论 -
Visual Studio快捷键大全
可以在“选项”对话框中“HTML 设计器”选项的“设计”窗格上设置网格间距,网格将在您下次打开文档时更改。仅可用于 HTML 设计器的“设计”视图。仅可用于 HTML 设计器的“设计”视图。仅可用于 HTML 设计器的“设计”视图。CTRL + SHIFT + V 将项从“工具箱”的“剪贴板循环”选项卡粘贴在文件中的插入点,并自动选择粘贴的项。视图.下一个视图CTRL + PAGE DOWN 从“设计”视图切换到“HTML”视图,反之亦然。原创 2022-10-16 14:48:50 · 6824 阅读 · 0 评论 -
一文带你搞清C++函数
函数的声明和定义前面我们的代码都比较简单,内容也比较少,我们把代码全部放在了main函数里面。如果在一个复杂的程序中,如果我们把所有的代码都放到main函数里面就会显得特别臃肿庞大,杂乱无章。现在有一种方法就是分块,把一些代码拿出去,把仍无分工到其他的函数中,main函数值负责核心的程序流程,具体的任务由其它函数完成。这种思想就是模块化编程。声明和定义函数的语法:返回值的数据类型 函数名(参数一的数据类型 参数一, 参数二的数据类型 参数二,……){实现函数功能的代码。return 返回值。原创 2022-10-16 14:37:54 · 1004 阅读 · 0 评论 -
一文带你搞定C++语句
这里如果不仔细看,可能会认为else是与第二层的if匹配,但是由于加了花括号了,这里说明一下,程序中的花括号就表示了一个语句块,这里第二层的 if 就是一个语句块,else与最开始的 if 匹配。这里你会发现控制台什么都没有输出,这里其实是当 n进入循环时,n++变成1,进入else的break中,直接结束循环。三目运算表达式可以嵌套使用,但是,过于复杂的三目运算表达式不方便理解。witch也是一种选择结构的语句,可以代替简单的多条件的i。有疑问先放一边,在以后的课程中,会介绍循环的各种使用方法。原创 2022-10-16 01:47:13 · 1106 阅读 · 0 评论 -
运算符的优先级
如果不确定运算符的优先级,可以加括号;表达式2: 表达式3。多用括号,让代码的可读性更好。(表达式)/函数名(形参表)sizeof(表达式)整型表达式/整型表达式。原创 2022-10-15 16:50:08 · 112 阅读 · 0 评论 -
深入理解++和 -- 操作
目录博文内容:深刻认识C语言的++/--操作本讲将会教你如何理解前置++,后置++问题★博文转载请注明出处。++、--操作基操:深刻理解 a++复杂表达式总结:后记:●由于作者水平有限,文章难免存在谬误之处,敬请读者斧正,俚语成篇,恳望指教! ——By 作者:德塔博文内容:深刻认识C语言的++/--操作本讲将会教你如何理...原创 2022-03-26 23:48:36 · 729 阅读 · 0 评论 -
【符号】 — C语言版
目录博文内容:深刻认识C语言重点操作符★博文转载请注明出处。1.注释符号1.1 基本注释注意事项1.2 y = x/*p1.3 关于注释的规则来自《C语言深度剖析》2.接续符和转义符2.1 接续符 — 续行功能2.2 转义字符3.单引号和双引号3.1 基本概念3. 2 特殊情况3.3 为何计算机需要字符4.逻辑运算符4.1 &&4.2 ||4.3 短路5.位运算符5.1 按位5.2好玩的题目 ...原创 2022-03-20 15:26:17 · 992 阅读 · 0 评论 -
C++数据定义及相关操作
以下划线和大写字母打头的名称被保留给编译器及其使用的资源使用,如果违反了这一规则,会导致行为的不确定性。在程序中添加的说明文字,对代码的流程或功能加以解释,方便自己和其他的程序员阅读和理解代码。注意,布尔型变量输出的时候,如果值是true,将显示1,f。注意:字符串内容中的两根反斜线是内容的一部分,不是注释。这里的“100”不是数字100,而是简单的“一零零”。如果输入的数据与变量的数据类型不匹配,会导致行为的不确定性。如下所示:输出结果是相同的。注意:程序不允许改变常量的值,否则编译的时候会报错。原创 2022-10-15 00:14:40 · 385 阅读 · 0 评论 -
第一个C++程序
使用VS2022可以帮我们生成一个简单的C++程序。鼠标双击V,运行它。点击“创建新项目”。选择“控制台应用”,再点“下一步”。点击“创建”后将生成一个最简单的C++程序。出现上面这个界面就说明安装成功,没有任何问题。选择“调试->开始执行“菜单,或快捷键Ctrl+F5运行程序。这里面的 // 后面的内容是说明文字,编译器编译的时候不会把它作为代码。原创 2022-10-14 23:18:06 · 196 阅读 · 0 评论 -
Windows开发环境的准备(VS 2022下载)
我们下载安装完成后,回到桌面,按Windows的功能键,找到Visual Studio ,右击,选更多 -> 打开文件位置,再点右键,选发送到 -> 创建桌面快捷方式。上面下载后的文件名为VisualStudioSetup.exe。Visual Studio 2022官方免费社区版。,无需注册,不需要破解和盗版。原创 2022-10-14 22:26:19 · 472 阅读 · 0 评论