- 博客(40)
- 资源 (2)
- 收藏
- 关注
原创 C++讲解---通过转换函数和运算符函数直接调用类的对象
本文将使用计数器类作为案例,详细讲解如何通过转换函数和运算符函数让类的对象能够像内置类型一样直接使用。现在我们有一个基础版本的计数器如下:版本1:基础计数器类。
2025-08-09 12:51:46
225
原创 C++讲解—类(2)
如果需要再类之外定义成员函数,就需要在类之内声明函数// 银行账户类(第3版:分离成员函数的定义)及类的使用例程// 第一区:预处理指令------------------------------------------------------------// 第二区:类的声明--------------------------------------------------------------// 账户名称// 账号// 账户余额。
2025-07-03 20:15:25
414
原创 少儿编程路线规划
现在有很多的编程机构,五花八门的。我有幸也见识到了大家的营销策略。这些策略有黑有白吧,从业几年,沉淀下来一些客户角度的干货,分享给大家。如果是想以很远很远的就业为目的,毕业就入大厂,年包几十w,我觉得可以洗洗睡了。ai发展的很快,未来大厂只会持续的缩编和剩下的就是会ai和agent的计算机出身的产品带领着一种cozy和cusor这些小兵们一人顶一个团队。我发现现在培养少儿用ai的还很少,其实这才是未来就业的赛道。如果有人想看,我未来还会出一篇这方面的文章。所以我们只看实际目的,和。
2025-04-19 21:19:16
721
原创 C++基础概念补充3—分离式编译
分离式编译是C++项目开发中的一种常见方式,它允许我们将代码分成多个文件(通常是.h头文件和.cpp源文件),分别编译后再链接成一个可执行程序。
2025-04-19 12:30:11
210
原创 C++ 讲解—函数模板
如果你学过python,那么就可以简单的将函数模板理解为父类即可。如果你没有学过,c++是你的第一个计算机语言,那么我们可以想象一下刀具的打磨:你有套刀具胚子,想要生产出用于切割不同材质的物品的刀具,比如水果、肉类、纸张等。这里的“刀具胚子”就类似于一个函数模板。虽然不同材质的物品(数据类型)各异,但刀具的基本功能(函数的逻辑)是通用的。水果刀:可以用来切水果(如苹果、香蕉)。打造成细长较厚的锋利刀子。厨房刀:可以用来切肉类或蔬菜。打造成较大较厚的刀具。裁纸刀:可以用来切纸张。
2025-04-19 12:18:27
201
原创 Python讲解---@classmethod装饰器
在 Python 里,@classmethod 是一个内置的装饰器,它能够把一个方法转变为类方法。
2025-04-15 22:18:21
190
原创 C++讲解——动态创建对象
在学习之前的知识点时,我们知道有静态存储期和自动存储期。的对象在程序的整个生命周期内都存在,全局变量和static修饰的局部变量都属于这一类。,这些对象在函数或代码块的执行期间存在,函数结束时自动销毁。局部变量是典型的自动存储期对象,它们在函数内部定义,函数结束时自动释放。那么有没有人为命令的可以存储或者删除的对象呢?那就是动态创建对象,它允许你在程序运行时根据需要动态分配和释放内存。在处理不确定数量的对象、延迟初始化或者管理大型资源时非常有用。
2025-04-07 21:28:15
1127
原创 C++讲解---数组和指针的异同点
我们前两篇有讲过这两个运算符,。这两个运算符是理解指针的关键,因为它们分别代表了和这两个基本操作。那么在理解数组和指针之前,我们先把这两个符号的意义记在心里。
2025-04-05 21:03:25
859
原创 C++讲解——指针在函数参数中的应用
我们在上一篇文章有提到过,C++需要指针来操纵内存地址来管理数据,那么我们在函数中是如何使用指针来改变实参的值呢?在这个例子中,函数参数是按值传递的,这意味着函数内部对参数的修改不会影响到主函数中的变量。如果主函数中调用 sum_mul (a, b, he, ji),那么 sum 和 mul 只是 he 和 ji 的副本,函数内部对它们的修改不会改变主函数中的 he 和 ji。因此,这个函数无法正确实现预期功能。如果我们使用指针来做实现这个功能呢?通过解引用操作符(
2025-04-05 15:27:40
358
原创 C++讲解---指针
是C++中一个非常重要的概念,它允许你直接操作内存地址,从而实现高效的内存管理和灵活的数据操作,是之后想要实现链表、树等复杂数据结构的基础.。
2025-03-30 21:03:42
436
原创 C++讲解---重载和内联函数
内联函数是C++中的一种优化手段,用于提升程序的执行效率。它通过将函数调用替换为函数体本身来减少函数调用的开销。内联函数是一种特殊的函数,它在编译时被直接嵌入到调用它的地方,而不是像普通函数那样通过函数调用的方式执行。内联函数通过使用inline关键字来定义。// 定义一个内联函数int x = 5;int y = 10;// 调用内联函数return 0;当编译器遇到内联函数的调用时,它不会生成普通的函数调用指令,而是将内联函数的代码直接插入到调用点。
2025-03-30 15:36:07
827
原创 C++讲解——值传递与引用
那么这个形参x其实是没有办法改变形参a的。因为在这里传递值的口子只有单向的,就是实参传递给形参,而不是形参传递给实参。这是一个超级简单的启动教程,你可以自己试试看,感受一下代码的运行,等明天继续更新原理。在学这个知识点之前,我们先回顾一下上两篇函数中的实参与形参。哈罗哈 学到了这一块的知识点了 最近保持了高更很开心。这样我形参x就可以改变a了。
2025-03-24 21:19:03
181
原创 C++讲解——函数(2)位运算与位移运算
在C++中,直接对无符号整数进行位运算本身不会出错,但如果不使用这三个函数,而是直接处理二进制位,可能会导致以下问题:**代码可读性差:**直接操作二进制位的代码可能会非常复杂和难以理解,尤其是当需要多次进行类似的位操作时。**代码复用性低:**如果每次都需要计算二进制位的个数、显示二进制位等操作,都会重复编写相同的代码,导致代码冗余和维护困难。容易出错:手动处理二进制位时,容易出现位移次数错误、条件判断错误等问题,尤其是在处理不同位数的整数时。
2025-03-22 17:55:39
976
原创 c++讲解—-函数(1)
定义:函数定义依次包括返回类型(输出数据的类型)、函数名、参数列表和函数体。如果说函数是一个黑箱子,那就是相当于输入了参数a和参数b,输出了a+b的值。调用:在需要的地方使用函数名并提供实际参数来调用函数好,知道了简单的概念之后就可以上手了,先跑一个最简单的代码试一试:例子1:返回三个数中的最大值// 求三个整数中的最大值(函数版)//---- 返回 a、b、c 中的最大值 ----//return max;// 先定义函数max()int main()
2025-03-21 21:27:48
253
原创 C++讲解——数组入门(1)
这段代码使用了一个数组score来存储5个人的分数,数组的大小由常量number决定。如果需要计算更多人的分数,只需修改number的值即可,而不需要添加更多的变量和输入语句。在C++中,数组的大小在定义时必须确定,并且在程序运行期间不能改变。递增变量 i 的值,则要交换值的两个元素的下标如下所示。这段代码定义了5个单独的变量来存储每个人的分数,使用了sum变量累加每个人的分数;另外注意,数组之间不可以简单的复制,只能一个个的进行元素复制。接着再看一个复杂的实现:将数组中的元素进行逆序排列。
2025-03-20 18:52:01
385
原创 C++讲解——枚举体的使用
使用枚举体可以让你的代码更具可读性和可维护性,因为它为一组相关的值赋予了有意义的名称,在做交互时,就可以使用赋予的名称调取相关值。这段代码定义了一个名为Color的枚举体,它包含三个枚举常量:RED、GREEN和BLUE。默认情况下,RED的值是0,GREEN的值是1,BLUE的值是2。这里,myColor是一个Color类型的变量,它的值是RED。好了,现在已经会定义枚举体了,很简单吧,那我们怎么用枚举体呢?现在,RED的值是1,GREEN的值是2,BLUE的值是4。更进一步,我们给这个枚举体指定的值。
2025-03-20 17:14:26
322
原创 C++讲解——补码
在计算机中,最初有多种方法来表示负数,如原码、反码等,但这些方法在进行加减运算时需要不同的处理逻辑,增加了硬件设计的复杂性。补码的出现解决了这个问题,使得正数和负数的加减运算可以使用相同的电路实现。加法:补码的加法运算可以直接使用二进制加法,不需要区分正数和负数。负数的补码:负数的补码是其绝对值的二进制表示取反(每个1变成0,每个0变成1)后加1。负数5的二进制表示(反码)为11111010,补码为11111011(反码加1)。正数的补码:正数的补码就是其二进制表示,即直接将数字转换为二进制形式。
2025-03-20 15:55:05
264
原创 C++讲解—sizeof() typeid()运算符
用来计算所占每各种整型空间的大小;可以简单的了解一下,如果大程序中出现空间的报错,可以在定义不同的整型来减少内存的占用;
2025-03-20 15:53:57
266
原创 C++讲解---ASCII编码
该表中 空栏处指的是没有相应字符的编码。另外,表中的横向和纵向的 0 ~ F 是用十六进制数表示的各位的值。字符 ‘R’ 的编码是十六进制数 52。字符 ‘g’ 的编码是十六进制数 67。
2025-03-14 18:46:08
159
原创 C++讲解---整型
该部分包括比较详细的表格,不至于下次 遇见这种很细节的定义的时候看不懂,可以当作字典查询使用;b 有符号整型(signed integer type):表示负整数、0 和正整数。a 无符号整型(unsigned integer type):表示 0 和正整数。另外,按照长短可分为long和short型。(忽略掉末尾的U L即可)
2025-03-14 18:44:57
221
原创 C++讲解——数据类型的转化和运算
通过指针,你可以直接访问和操作内存中的数据。指针的值是一个内存地址,它指向内存中的某个位置。与之对应的是显式类型转换(Explicit Type Conversion),这是指程序员在代码中明确地将一个数据类型的值转换为另一种数据类型的操作。显式类型转换是程序员主动进行的,通常用于在不同数据类型之间进行精确的控制。运算过程中,计算机通常会自动转换数据类型,使得计算结果出现偏差,这就是隐式类型转换(Implicit Type Conversion)。数据类型的不同会让c++在运算的时候得到不一样的结果。
2025-03-14 18:38:28
798
原创 C++基础概念补充1 宏是什么
它允许你定义代码片段的简写形式,这些简写形式可以在代码中被替换为对应的代码片段。宏的定义使用#define指令。优先级问题:在带参数的宏中,需要注意运算符的优先级问题,通常使用括号来确保正确的计算顺序。没有类型检查:宏在预处理阶段被替换,因此不会进行类型检查,可能会导致一些难以发现的错误。宏的定义通常在代码的开头部分,也就是头文件或者源文件的顶部。调试困难:由于宏在预处理后才会被替换,因此在调试时可能会看到与原代码不一致的内容。MAX是一个带参数的宏,它接受两个参数a和b,并返回它们中的较大值。
2025-03-12 13:45:48
353
原创 C++讲解---基本数据类型算术型
二进制数的每一位都代表一个2的幂次方的值。从右到左,每一位的权值依次是2⁰, 2¹, 2², 2³,依此类推。将每一位的数字(0或1)乘以其对应的权值,然后将所有结果相加,就得到了十进制数。可以简单的了解一下,如果大程序中出现空间的报错,可以在定义不同的整型来减少内存的占用;另外,表中的横向和纵向的 0 ~ F 是用十六进制数表示的各位的值。,该部分包括比较详细的表格,不至于下次 遇见这种很细节的定义的时候看不懂,可以当作字典查询使用;将十进制数转换为二进制数,通常使用除以2取余的方法。
2024-11-08 11:24:19
146
原创 C++讲解---转义字符和控制符
转义字符:可以理解为时用来控制运行结果的输出格式和内容的一个命令,但是它表示出来是一个字符的形式,无论是由多少个字符构成。
2024-11-08 10:24:17
243
原创 C++讲解-- break 、continue 和 goto
在循环语句(for 语句、do-while 语句和 while 语句)中执行 break 语句,能够强制中断并结束该循环语句。2. 每次定义声明变量之前都要写好变量的数据类型,整型,字符串还是浮点型。
2024-11-05 12:57:54
408
原创 C++讲解---while语句
do-while 语句在执行循环主体之后判断,称为后判断循环,而 while 语句在执行循环主体之前判断,称为前判断循环。++i: 先自加,再赋值。i++: 先赋值,再自加。
2024-07-02 15:02:18
291
原创 C++讲解--do-while语句
do-while 语句仅在表达式的求值结果为 true 期间循环执行语句。此程序表示当输入的值大于2或者小于0的时候,do后面的代码会再次执行。while 的意思是“在……do 的意思是“执行”
2024-07-02 14:34:51
290
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人