
c++学习总结
zhangzhangkeji
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
c++ 里的 [[nodiscard]] 表示函数的返回值不应该被忽略,就是说函数的返回值不应该被悬空,而应该拿来使用
(1)(2)原创 2025-04-25 13:58:33 · 210 阅读 · 0 评论 -
char32_t、char16_t、wchar_t 用于 c++ 语言里存储 unicode 编码的字符,给出它们的具体定义
【代码】char32_t、char16_t、wchar_t 用于 c++ 语言里存储 unicode 编码的字符,给出它们的具体定义。原创 2025-04-22 18:53:30 · 279 阅读 · 0 评论 -
c++ 里友元函数可以声明与定义放一块么,答案是可以,这是友元函数会自动成为内联函数
(1)(2)(3)原创 2025-04-13 21:58:57 · 176 阅读 · 0 评论 -
gcc / g++ -D 的 D 是 define 定义与赋值宏的含义
谢谢原创 2025-04-03 01:39:15 · 374 阅读 · 0 评论 -
讨论 c / c++ 语言里的 do...while 循环里的 continue 跳转的位置, 并用反汇编查看一下,结果是会先进行条件判断的,再进行循环
(1)(2)原创 2025-02-20 20:43:13 · 100 阅读 · 0 评论 -
用 fgets()函数从空文件中读取,此时此系统函数并不会修改接收缓存中的内容。 linux 平台里的测试如下
(1)(2)原创 2025-02-20 20:18:38 · 120 阅读 · 0 评论 -
关于 c++ 对象中类的静态数据成员的使用语法测试:非常量的静态数据成员,只可以在类外赋值,且其的赋值执行早于类的构造函数
(1)(2)原创 2025-02-13 01:07:29 · 75 阅读 · 0 评论 -
c++ 定点 new 及其汇编解释
【代码】c++ 定点 new。原创 2025-01-28 14:57:16 · 490 阅读 · 0 评论 -
在 c/c++ 中,现代 linux 与 windows 平台上的全局变量 errno ,竟然都是线程安全的
(1) 来自网络上的宝贵的理论解释:(2) 测试一下:(3)原创 2025-01-07 13:35:33 · 106 阅读 · 0 评论 -
在 c/c++ 里,计算字符串大小的 sizeof ( “123456“ ) = 7 与 strlen ( “123456“ ) = 6 不一样
(1) 给出在 vs2019 上的测试结果:(2)原创 2025-01-06 11:25:01 · 119 阅读 · 0 评论 -
c++里的新的运算符 alignof ( T ) ,输出值是多少呢?经测试,等价于 sizeof ()运算符
+ 可见 , sizeof () 的大小更大一些。原创 2024-12-29 06:15:19 · 123 阅读 · 0 评论 -
c++ 17 里新出现的修饰符 [ [ maybe_unused ] ]
【代码】c++ 17 里新出现的修饰符 [ [ maybe_unused ] ]原创 2024-12-29 05:41:30 · 277 阅读 · 0 评论 -
is_trivially_copyable_v<T>、is_copy_constructible_v<T>、is_move_constructible_v<T> 等对基础类型、左值引用、右值引用的特性
(1) 如图,这些布尔判断的逻辑,是属于 c++ 编译器内部的,我们看不到其推理过程,因此验证一下:++ :++ :(2)原创 2024-12-28 11:29:26 · 216 阅读 · 0 评论 -
c++ 里 常量转换 const_cast < T > ,要给模板参数 T 传递什么类型呢?
【代码】c++ 里 常量转换 const_cast < T > ,要给模板参数 T 传递什么类型呢?原创 2024-12-28 03:08:21 · 277 阅读 · 0 评论 -
在 c++ 中 int 类型,等价于 long 类型。这一点不同于 java
(1)给出 windows 上的测试:(2)原创 2024-12-26 04:44:07 · 100 阅读 · 0 评论 -
c++ 在子类中使父类中定义的类可见,使用 using Parent :: T
(1) 在看大师们写的代码时候,由这种写法,简化逻辑后测试以下:(2)原创 2024-12-25 17:13:46 · 342 阅读 · 0 评论 -
c++里 系统函数 ,内存复制 memcpy( void * dst ,void * src,u_long_long size ) 的测试,返回值是指针 dst
+ 答案是该函数也很安全,阻止了大内存到小内存的复制操作。原创 2024-12-23 20:57:55 · 146 阅读 · 0 评论 -
c++ : 已知 int a =5 ; int & b = a ; 那么 &b ,对左值引用取地址会返回什么呢?
这取决于 c++ 编译器定义的语法规则,看采取哪种语义。(1) 问题如标题。原创 2024-12-23 03:47:08 · 155 阅读 · 0 评论 -
在 c++ 中 使用 数组名 与 &数组名 在语法上没有区别。 使用 后者感觉在语法上更规范,取得变量的地址
(1)(2)原创 2024-12-19 00:31:24 · 96 阅读 · 0 评论 -
c++ 中,当函数的返回值是左值引用时 ,接收函数返回值的变量是否也是左值引用呢?答案为不是
(3)接着给出 c++原创 2024-12-10 13:53:24 · 233 阅读 · 0 评论 -
c 、c++ 里,数组名的类型,跟变量指针的类型,是不一样的。地址 + 1 操作的结果,也是不一样的
(1) 给出一些测试例子:++ 以及:++ 以及:++。(2)原创 2024-12-05 12:47:46 · 177 阅读 · 0 评论 -
c++ 里的 make_unique <T> ( ) 函数的学习
这里记录下 网络上给的教学:举例:原创 2024-11-20 18:59:39 · 281 阅读 · 0 评论 -
c++ 里如何检测内存泄露:比如用了 new ,但没有用 delete
(1 方法一) 用 MFC 框架的 F5 不带断点的调试。可以在输出窗口提示是否有内存泄露。原创 2024-07-05 19:02:14 · 552 阅读 · 0 评论 -
c++ 附赠课程的知识点记录
(1) 静态变量的赋值。原创 2024-07-05 15:37:37 · 307 阅读 · 0 评论 -
c++ 动态类型转换 dynamic_cast<> 的验证
谢谢原创 2024-07-04 16:47:19 · 323 阅读 · 0 评论 -
c++ 语法中的 for 循环, while 循环 ,循环体中的 变量创建会每次都执行么? 是的
原创 2024-06-23 19:31:40 · 122 阅读 · 0 评论 -
c++ 中如何往 string 字符串类型里插入浮点数
谢谢,在看王老师课程时,有如此用法,单独拿出来记录一下原创 2024-06-23 13:42:04 · 226 阅读 · 0 评论 -
c++ 里构造函数的形参与数据成员的同名问题
如题,这时,或许在 java 里,会报语法错误。但在 c++ vs2019 开了 c++20语法规范。这样的好处是解决了咱们的起变量名的麻烦:重名现在已不是错误,编译器可以解决了。原创 2024-06-21 22:57:02 · 353 阅读 · 0 评论 -
c++里 父类私有的虚函数,也是可以被子类重写和继承的。但父类私有的普通函数,子类无法直接使用
今天看课本上有这么个用法,特测试一下。这样就也可以放心的把父类的私有函数列为虚函数了,或者说把父类的虚函数作为私有函数了。原创 2024-06-20 20:45:49 · 355 阅读 · 0 评论 -
c++里 lamda 表达式,其实被编译器处理为匿名类,并实例化为匿名对象
lamda 表达式必须在函数作用域中定义。通过按值捕获或按引用捕获,可以使用所在函数中定义的变量。在类的成员函数中定义的 lamda 表达式,若捕获了 this ,则可以修改或读取类里的数据成员。lamda 表达式可以不用捕获,直接使用所在函数中定义的静态变量。该匿名对象定义了括号 () 运算符函数,所以可以像函数一样被调用。原创 2024-06-18 21:33:47 · 305 阅读 · 0 评论 -
c++里对 new 、delete 运算符的重载
当然,当我们为类定义了 operator new () 和 operator delete () 函数以后,编译器就不再调用全局的同名函数,而是调用咱们自己定义的版本。源代码其实也是文本。可见咱们编写的 operator new() / delete() 函数的功能是完整的,可以像系统提供的同名函数一样使用,不会造成内存泄露。对 a + 5 的调用(a 是可调用对象),转换为 operator int ();对 a(5) 的调用(a 是可调用对象),转换为 operator ( ) (int);原创 2024-06-17 19:51:51 · 663 阅读 · 0 评论 -
c++ 里:对于函数和引用类型 is_const_v<const _Ty> = false ,这是编译器的特殊设置
原创 2024-06-14 03:52:58 · 378 阅读 · 0 评论 -
c++ 成员函数带后缀 volatile 的含义
以及。原创 2024-06-13 15:40:45 · 218 阅读 · 0 评论 -
c++编译器在什么情况下会提供类的默认构造函数等,与析构函数
我们都知道,在 c++ 里,编写的简单类,若没有自己编写构造析构函数与 copy 构造函数 与 赋值运算符函数,那么编译器会提供这些函数,并实现简单的语义,比如成员赋值。看 源码时,出现了下图类似的情形,在没有明确定义类的析构函数的情况下,调用了类的析构函数,那么这么做可以么?之所以加上类 B ,也是为了增加难度,让测试更有意义。原创 2024-06-08 18:48:33 · 302 阅读 · 0 评论 -
c++ 里函数选择的优先级:普通函数、模板函数、万能引用,函数重载的常量左值引用、右值引用,编译器选择哪个执行呢?
看大师写的代码时,除了在类里定义了 copy 构造函数,移动构造函数,还定义了对形参采取万能引用的构造函数,因此有个疑问,这时候的构造函数优先级是什么样的呢?因此,出现这种情况时,要注意编写的重载的构造函数的语义的一致性,避免出错。当又含有万能引用的构造函数呢?原创 2024-06-07 06:53:54 · 207 阅读 · 0 评论 -
c++ 模板类的泛化版本,只声明,不定义,可以么?可以
王建伟老师的课本,413 页讲解过这个情况。只要不创建泛化模板的对象即可。最近看源码时,也出现了这种情况,大师们也这么写。原创 2024-06-04 21:20:49 · 298 阅读 · 0 评论 -
基于 vs2019 c++20 规范下的枚举类 enum 测试
看 STL 库里源代码时候,有枚举类的这样使用,觉得挺新奇的,故简化逻辑后给出例子,今后咱们自己定义枚举类时候,估计也要采用这样的框架:原创 2024-06-04 08:31:57 · 309 阅读 · 0 评论 -
关于 c++ cout << endl; 的源码解释
以前在王老师课上,老师提到过 endl 是一个函数模板。原创 2024-06-01 20:40:08 · 317 阅读 · 0 评论 -
用 typedef 定义指针类型
一般 typedef int A, 定义一个新类型。但也可以为指针定义新类型 typedef int* B , 则 B 就是指针类型。原创 2024-05-31 18:47:36 · 232 阅读 · 0 评论 -
如何在 c++ 里,让子类访问到父类的私有数据成员?答案之一:使用第三方友元类或友元函数
看 STL 库的代码时候,见有这种写法,感觉挺神奇的。故简化逻辑后,写个玩具验证一下。本来这是很别扭的做法。既然父类让数据成员私有了,还要让子类去调用,何苦呢?但看大师们的写法,果然 c++ 编译器还有这样的功能,此处也可以当成对对友元类友元函数的练习。原创 2024-05-30 07:29:06 · 440 阅读 · 0 评论