- 博客(26)
- 收藏
- 关注
原创 C++Cherno 学习笔记day18 [71]-[75] C++安全、PCH、dynamic_cast、基准测试、结构化绑定
通过结构化绑定,C++代码可以更直观地处理复合数据,减少冗余变量声明,同时保持类型安全和性能。用于生产环境使用智能指针,用于学习和了解工作积累,使用原始指针,当然,如果你需要定制的话,也可以使用自己写的智能指针。预编译的头文件实际上是让你抓取一堆头文件,并将它们转换成编译器可以使用的格式,而不必一遍又一遍地读取这些头文件。GR-,/GR-的意思是我们关掉了RTTI,给我们带来不可预测的行为。安全编程,或者说C++编程中,降低崩溃,内存泄露、非法访问等问题。,它不像编译时进行的类型转换,而是。
2025-04-10 12:39:12
399
原创 C++Cherno 学习笔记day17 [66]-[70] 类型双关、联合体、虚析构函数、类型转换、条件与操作断点
union里的成员会共享内存,分配的大小是按最大成员的sizeof, 视频里有两个成员,也就是那两个结构体,改变其中一个另外一个里面对应的也会改变. 如果是这两个成员是结构体struct{ int a,b} 和 int k , 如果k=2;这意味着在代码中一直使用这种类型,比如整数,但实际上,我现在要把这段内存,同样的内存,当作double类型,或者是class类型等。例如js,let a=2;我们可以用不同的方式解析同一段内存,从而得到不同的结果,类型只是我们约定的解析内存的方式。
2025-04-09 00:05:28
610
原创 C++Cherno 学习笔记day16 [61]-[65] 名称空间、线程、计时、多维数组、排序
学习了如何在c++api中访问线程,并最终变成特定平台的代码需要包含。
2025-04-03 00:22:31
846
原创 Cherno C++ 学习笔记【目录】 [1]-[99]
感谢Thanks♪(・ω・)ノyoutube.com/chernob站up主神经元猫的翻译C++Cherno 学习笔记day1 [1]-[6] VS2022、C++编译器C++Cherno 学习笔记day2 [7] C++链接器C++Cherno 学习笔记day3 [8]-[11] C++变量、函数、头文件C++Cherno 学习笔记day4 [12]-[15] C++条件、循环、控制流语句C++Cherno 学习笔记day5 [16]-[20] C++指针、引用、类和结构体C++Cherno 学习笔记
2025-04-01 23:55:54
201
原创 C++Cherno 学习笔记day15 [57]-[60] 静态数组、函数指针、lambda、using namespace std
Lambda 表达式是现代 C++ 中提升代码表达力的利器,尤其适合以下场景:短小的一次性逻辑(如 STL 算法中的谓词)。需要捕获上下文的闭包(如异步回调、状态保存)。替代传统的函数对象(减少样板代码)。
2025-04-01 23:46:01
926
原创 C++Cherno 学习笔记day14 [53]-[56] 模版、堆vs栈内存、宏、auto关键字
它本质上是代码生成工具,在编译前对源代码进行文本级别的替换。”,通过编程手段让程序在运行时或编译时动态生成、分析或修改自身结构或行为。宏(Macro) 是一种基于 预处理器 的文本替换机制,通过。这两个内存区域的实际位置(物理位置)在RAM中完全一致。通常是一个预定义大小的内存区域, 通常约为2兆字节左右。游戏引擎中,日志系统和材质系统,常用模版对图像渲染。栈给我们内存的方式和堆给我们内存的方式是不同的。RELEASE中,在编译时,不会包含特定的代码。也是一个预定义了默认值的区域,但可以生长改变。
2025-03-31 23:49:51
330
原创 C++Cherno 学习笔记day13 [49]-[52] 静态链接、动态库、创建与使用库、处理多返回值
作者就是想问声明函数时无论加不加_declspec(dllimport),为什么都能正常运行,具体原因就是作者在链接器配置里面已经附加了glfw3dll.lib所以加不加_declspec(dllimport)效果一样都能正常运行,glfw3dll.lib的作用作者在前面有具体说明,当然推荐还是加上GLFW_DLL的定义(前面的注释说了,如果你的应用程序要链接这个DLL最好确保加上这个GLFW_DLL定义)3、lib库原理上应该是不做链接过程的,我在一个lib项目上,故意犯下链接错误,编译并不报错。
2025-03-29 21:19:07
913
原创 C++Cherno 学习笔记day12 [45]-[48] 拷贝构造函数、箭头操作符、动态数组、stdvector使用优化
也就是说,当我们想改变其中一个时,它同时改变了他们,因为它们指向同一个内存段。或者我们删除其中一个,会把两个都删除,因为指向同一个内存块。当你试图创建一个新的变量并给它分配另一个变量时,它和你正在创建的变量有相同类型。崩溃,我们真正需要做的是,分配一个新的char数组,来存储复制的字符串。而我们现在做的是复制指针,两个字符串对象完全指向相同的内存缓冲区。浅拷贝:不会去到指针的内容或者指针所指向的地方,也不会复制。当你把一个字符串赋值给一个对象时,这个对象也是一个字符串。拷贝:复制数据,复制内存。
2025-03-27 19:20:03
267
原创 C++Cherno 学习笔记day11 [41]-[44] C++运算符及重载、this、栈作用域生存期、智能指针
运算符重载让自定义类型与内置类型行为一致,提升代码可读性。遵循惯例:保持运算符的天然语义,避免反直觉设计。慎用重载:仅在逻辑明确时使用,避免过度工程化。
2025-03-26 11:45:05
762
原创 C++Cherno 学习笔记day10 [37]-[40] 三元操作符、初始化C++对象、new、隐式转换与explicit
new就像动态内存的租房合同,租完要记得退房(delete),否则房东(操作系统)会扣你押金(内存泄漏)!现代C++更推荐用。
2025-03-25 22:48:03
268
原创 C++Cherno 学习笔记day9 [34]-[36] C++CONST、mutable、成员初始化列表
看const的作用,首先看const左边的内容,左边没有再看右边。举例: const int第一个const左边没有,看右边和int绑定在一起,说明不能改变指针指向的值。第二个const 左边是int,相当于和地址绑定在一起,说明不能改变指针的值(即地址),第三个const左边是getX函数名,说明不能改变函数里面的东西,这个函数是只读的。**
2025-03-25 20:51:33
326
原创 C++Cherno 学习笔记day8 [31]-[33] C++数组、字符串及字符串字面量
是vs在debug模式下默认填充的16进制0xcc和0xcd 两个0xcc按GBK解析就是中文的“烫”,两个0xcd按gbk解析就是中文的“屯”,区别在于烫是在栈上创建的,屯是在堆上创建的(new出来的)char(character),一个字节的内存,可以把指针转换成char型指针,可以用字节做指针运算。,可以通过索引来遍历,在一个特定范围内,可以设置example数组中的每一个值。字符串:本质:一个接一个字符的一组字符 字母、数字、符号等。:元素的集合,按特定的顺序排列的一堆东西。
2025-03-22 00:40:44
350
原创 C++Cherno 学习笔记day7 [27]-[30] C++继承、虚函数、接口(纯虚函数)和可见性
(Standard Namespace)的标识符,所有 C++ 标准库提供的功能(如容器、算法、字符串处理等)都封装在这个命名空间中。虚函数引用了一种Dynamic Dispatch(动态联编),通常通过v表(虚函数表)来实现编译。v表,包含基类中所有虚函数的映射,保证在运行时,映射到正确的覆写override函数。允许我们从那个基类中分离出来,从最初的父类中创建子类。通常声明函数时,我们的方法通常在类内部起作用,创建一个子类,它将包含你的父类所包含的一切。继承允许有一个相互关联的类的层次结构。
2025-03-21 00:22:36
419
原创 C++Cherno 学习笔记day6 [21]-[26] C++静态static、枚举、构造和析构函数
类实例会创建一个命名空间,比如你会这样调用类中的变量:e.x,指明调用e中的x。创建类实例,使用类中的函数时,实际上是调用的这个类实例中的函数实例。所以在静态函数中要想访问非静态变量(类实例中的变量),必须注明类实例的名称,比如:e.x。把它们放在entity是有意义的,如果有一条信息想在所有Entity实例之间共享数据,或者将它存储在Entity类中是有意义的,(内部静态变量,该变量实际上将与类的所有实例共享内存,该静态变量在你在类中创建的所有实例中,静态变量只有一个实例)最好在类中创建一个静态变量,
2025-03-19 00:02:15
242
原创 C++Cherno 学习笔记day5 [16]-[20] C++指针、引用、类和结构体
解引用(Dereferencing) 是编程中通过指针或引用访问其指向内存位置存储的值的过程。假设你网购了一个包裹,但快递员不知道你家具体位置,需要根据「地址」才能找到你家,把包裹放进去。:快递员不用记住所有房子,只需按地址配送(程序只需记住地址,不用复制整个数据)。:就像你可以通过地址直接找到房子放东西,程序也需要通过指针直接操作内存数据。指针 = 快递单上的地址(比如:地址是0x1234)变量 = 你家房子(比如:房子里存着你的包裹)主机字节序(小端)/网络字节序(大端):通过地址直接操作内存数据。
2025-03-17 23:39:09
355
原创 C和C++区别(通俗易懂版)
你会先设计一个「动物」模板(类),里面自带喂食、打扫的方法(成员函数)。你会手动记录每只动物的名字、年龄、喂食时间(用结构体),然后写一堆函数来喂食、打扫、检查健康(过程式编程)。你得自己切菜、煎肉、组装,每一步都要亲自动手(比如手动分配内存、直接操作硬件)。特点:既能手作(保留C的功能),也能用高级工具(面向对象),但厨房设备更复杂。有现成的模具帮你压肉饼(类)、自动计时器(异常处理)、万能调料盒(模板)。选 C:需要极致性能控制(如内核开发)或硬件资源受限(如单片机)。(一步一步告诉计算机怎么做),
2025-03-17 17:36:19
273
原创 C++Cherno 学习笔记day4 [12]-[15] C++条件、循环、控制流语句
在编译阶段预先计算常量表达式的值,并将结果直接替换到代码中,从而减少运行时的计算开销。用while循环,因为条件是不变的,不需要保持更新或者初始化某些东西。三部分:变量的声明、条件、(i++、i+=、i=i+1)如果有一个已经存在的确定的条件,只是想做一种比较,如果为null,可以为0或nullptr。处理数组时,用for循环,偏移量/索引。报错:解决,意外删除了某些文件导致。条件语句condition。
2025-03-17 11:52:18
387
原创 C++Cherno 学习笔记day3 [8]-[11] C++变量、函数、头文件
如果一个函数声明了非 void 的返回类型,则必须保证在所有可能的执行路径上返回一个兼容类型的值。Byte(字节) 是计算机中最基本的存储单位之一,通常表示为一个 8 位(bit) 的二进制数据单元。几乎每个编译器都支持pragma once,Visual Studio、GCC、Clang、MSVC等。头文件:某个或几个函数的“证书”,当你(编译文件)持有这个函数的“证书”的时候,才可以调用它。监督头文件,阻止单个头文件多次被包含,并转换为单个翻译单元。“”引号是外部文件(包含相对于当前文件的文件)
2025-03-16 18:07:36
556
原创 C++Cherno 学习笔记day2 [7] C++链接器
函数重载(Function Overloading)是 C++ 中的一种特性,允许在同一作用域内定义多个同名函数,但这些函数的参数列表必须不同(参数类型、数量或顺序不同)。二义性匹配(Ambiguous Match) 是指当编译器在调用重载函数时,发现多个版本都能匹配参数,且没有明确的“最佳匹配”,从而导致编译错误。• 每个cpp文件,都会编译生成单独的目标文件,有单独的编译单元,链接器的作用就是将多个目标文件链接起来,生成最终的可执行文件。编译器根据调用时的实际参数类型和数量,自动选择最匹配的函数版本。
2025-03-13 11:51:00
329
原创 C++Cherno 学习笔记day1 [1]-[6] VS2022、C++编译器
访问thecherno.com/vs下载vs-setting的设置文件。官网下载 视频里是VS2017 我安的是VS2022。VisualAssist插件 提速(付费)推荐。const char*包含字符串的类型。测试main.cpp。
2025-03-13 00:56:45
306
原创 VS 解决无法打开world_opencvxxx.lib问题
无法打开文件“ opencv_world346d.lib”,把上面x64调试器改成x86。2、重新配置opencv×。
2025-03-11 23:53:27
268
原创 Python 向微信公众号传值
Python 向微信公众号传值参考资料http://www.zzvips.com/article/116899.htmlhttps://blog.youkuaiyun.com/yyws2039725/article/details/120266162https://blog.youkuaiyun.com/zhangb98/article/details/123176452https://blog.youkuaiyun.com/zhangb98/article/details/123187478https://blog.csdn.n
2022-04-17 17:17:17
195
原创 基本的Dos命令
打开CMD的方式1.开始+系统+命令提示符2.Win键+R 输入cmd打开控制台(推荐使用)3.在任意的文件夹下面,按住shift键+鼠标右键点击,在此处打开命令行窗口4.资源管理器的地址栏前面加上cmd路径管理员方式运行:选择以管理员方式运行常用的Dos命令1.#盘符切换2.#查看当前目录下的所有文件 dir3.#切换目录 cd change directory4.cd …5.#清理屏幕 cls (clear screen)6.#退出终端 exit7.#查看电脑的i
2021-03-23 12:18:21
81
原创 Windows常用快捷键
Windows+R 打开xxx 运行 输入cmd 命令行窗口Shift+delete 永久删除Windows+E 打开 我的电脑任务管理器 结束任务 输入explorer重新运行桌面Ctrl+shift+esc 打开任务管理器Windows+tab 切换任务 应用...
2021-03-22 23:09:11
85
原创 Markdown语法详解
Markdown学习标题三级标题四级标题字体Hello,World !Hello,World !Hello,World !Hello,World !引用wmy分割线图片[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-CnxmxIiN-1615471220564)(C:\Users\86134\Desktop\1601821098192.jpeg)]超链接点击跳转到wm的博客列表ABCABC表格名字性别生
2021-03-11 22:00:40
72
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人