![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
cpp
御风@户外
这个作者很懒,什么都没留下…
展开
-
读书笔记:Effective C++ 3.0版2005年Scott Meyers : 55条建议(47-55)
模板、operator new delete原创 2023-11-20 00:13:46 · 353 阅读 · 0 评论 -
读书笔记:Effective C++ 3.0版2005年Scott Meyers : 55条建议(1-46)
读书笔记:Effective C++ 3.0版2005年Scott Meyers : 55条建议原创 2023-10-25 09:23:02 · 189 阅读 · 0 评论 -
读书笔记:c++对话系列,模板方法模式(Template Method Pattern)
**模板方法模式(Template Method Pattern)**: 通过一个公共的、非虚拟的成员函数调用一个受保护的虚拟函数。文章中的Mountie类的read和write函数可能就是调用了do_read和do_write的受保护虚拟函数,这是模板方法模式的经典示例。行为设计模式的一种,主要用于定义算法的骨架,而将一些步骤的具体实现推迟到子类中。这样,模板方法使得子类可以在不改变算法结构的情况下,重新定义算法中的某些步骤。核心:public非虚函数定义接口,protected虚函数定义实现。原创 2023-10-25 00:20:27 · 240 阅读 · 0 评论 -
读书笔记:c++对话系列,Visitor模式
Visitor模式,核心是:将操作作为数据对象传递给类体系预留的Accept函数。原创 2023-10-24 23:58:08 · 391 阅读 · 0 评论 -
读书笔记:c++对话系列,空指针空引用,c语言演进,for循环作用域
大概主要是要注意对象生命周期,指针有效性检测。c语言演进:BCPL、B、C、CPP、JAVAfor循环作用域,不同编译器作用域不同,较新的c编译器,变量在for的第一段声明时,作用域仅在当前for内。“理论和实践的区别实际上要比在理论上更大一些。”原创 2023-10-24 09:38:56 · 31 阅读 · 0 评论 -
读书笔记:c++对话系列,auto_ptr源码范式参考
读书笔记:c++对话系列,auto_ptr源码范式参考原创 2023-10-24 09:15:38 · 39 阅读 · 0 评论 -
读书笔记:Effective C++ 2.0 版,条款43(多继承)、条款44(概念明确)、条款45-50(杂项)
读书笔记:Effective C++ 2.0 版,条款43(多继承)、条款44(概念明确)、条款45-50(杂项)原创 2023-10-24 01:01:39 · 158 阅读 · 0 评论 -
读书笔记:Effective C++ 2.0 版,条款41(继承和模板)、条款42(私有继承)
读书笔记:Effective C++ 2.0 版,条款41(继承和模板)、条款42(私有继承)原创 2023-10-24 00:38:31 · 65 阅读 · 0 评论 -
读书笔记:Effective C++ 2.0 版,条款39(避免向下转换)、条款40(用构成实现有一个和用...实现)
读书笔记:Effective C++ 2.0 版,条款39(避免向下转换)、条款40(用构成实现有一个和用...实现)原创 2023-10-24 00:29:07 · 58 阅读 · 0 评论 -
读书笔记:Effective C++ 2.0 版,条款37(不要重新定义继承而来的非虚函数)、条款38(不重新定义继承而来的缺省参数值)
读书笔记:Effective C++ 2.0 版,条款37(不要重新定义继承而来的非虚函数)、条款38(不重新定义继承而来的缺省参数值)原创 2023-10-24 00:17:01 · 80 阅读 · 0 评论 -
读书笔记:Effective C++ 2.0 版,条款35(public继承==是一个)、条款36(接口继承和实现继承)
读书笔记:Effective C++ 2.0 版,条款35(public继承==是一个)、条款36(接口继承和实现继承)原创 2023-10-24 00:09:44 · 166 阅读 · 0 评论 -
读书笔记:Effective C++ 2.0 版,条款34(降低编译依赖性)
读书笔记:Effective C++ 2.0 版,条款34(降低编译依赖性)原创 2023-10-23 23:51:38 · 70 阅读 · 0 评论 -
读书笔记:Effective C++ 2.0 版,条款33(inline)
内联的优缺点原创 2023-10-23 23:34:56 · 48 阅读 · 0 评论 -
读书笔记:Effective C++ 2.0 版,条款31(注意对象的生命周期)、条款32(推迟变量定义)
读书笔记:Effective C++ 2.0 版,条款31(注意对象的生命周期)、条款32(推迟变量定义)原创 2023-10-23 23:24:09 · 40 阅读 · 0 评论 -
读书笔记:Effective C++ 2.0 版,条款29(避免返回内部指针 )、条款30(函数与成员语义一致)
读书笔记:Effective C++ 2.0 版,条款29(避免返回内部指针 )、条款30(函数与成员语义一致)原创 2023-10-23 23:16:29 · 163 阅读 · 0 评论 -
读书笔记:Effective C++ 2.0 版,条款28(namespace )
namespace 作为前缀,防止不同名字域的类型、常量等互相污染。没命名的名字空间一般用于限制名字空间内部元素的可见性。原创 2023-10-23 23:02:15 · 614 阅读 · 0 评论 -
读书笔记:Effective C++ 2.0 版,条款26(歧义)、条款27(禁止部分隐式生成的函数)
读书笔记:Effective C++ 2.0 版,条款26(歧义)、条款27(禁止部分隐式生成的函数)原创 2023-10-23 22:53:16 · 210 阅读 · 0 评论 -
读书笔记:Effective C++ 2.0 版,条款24(参数缺省值)、条款25(int 0与NULL *歧义问题)
读书笔记:Effective C++ 2.0 版,条款24(参数缺省值)、条款25(int 0与NULL *歧义问题)原创 2023-10-23 22:41:46 · 166 阅读 · 0 评论 -
读书笔记:Effective C++ 2.0 版,条款22(传引用)、条款23(返回引用没有返回对象安全)
读书笔记:Effective C++ 2.0 版,条款22(传引用)、条款23(返回引用没有返回对象安全)原创 2023-10-23 22:22:38 · 167 阅读 · 0 评论 -
读书笔记:Effective C++ 2.0 版,条款20(避免public出现数据成员)、条款21(尽量用const)
读书笔记:Effective C++ 2.0 版,条款20(避免public出现数据成员)、条款21(尽量用const)原创 2023-10-23 22:10:43 · 184 阅读 · 0 评论 -
读书笔记:Effective C++ 2.0 版,条款19(成员函数,非成员函数和友元函数)
条款19: 分清成员函数,非成员函数和友元函数原创 2023-10-21 00:31:37 · 37 阅读 · 0 评论 -
读书笔记:Effective C++ 2.0 版,条款18(类的接口完整并且最小)
条款18(类的接口完整并且最小)原创 2023-10-21 00:24:01 · 33 阅读 · 0 评论 -
读书笔记:Effective C++ 2.0 版,条款15、16、17(operator=返回*this、全赋值、检查this)
条款15、16、17(operator=返回*this、全赋值、检查this)原创 2023-10-21 00:13:29 · 215 阅读 · 0 评论 -
读书笔记:Effective C++ 2.0 版,条款13(初始化顺序==声明顺序)、条款14(基类有虚析构)
读书笔记:Effective C++ 2.0 版,条款13(初始化顺序==声明顺序)、条款14(基类有虚析构)原创 2023-10-17 00:38:38 · 107 阅读 · 0 评论 -
读书笔记:Effective C++ 2.0 版,条款11(拷贝构造函数和赋值操作符)、条款12(初始化列表)
读书笔记:Effective C++ 2.0 版,条款11(拷贝构造函数和赋值操作符)、条款12(初始化列表)原创 2023-10-17 00:19:19 · 160 阅读 · 0 评论 -
读书笔记:Effective C++ 2.0 版,条款9(避免隐藏标准形式的new)、条款10(new、delete对称定义)
读书笔记:Effective C++ 2.0 版,条款9(避免隐藏标准形式的new)、条款10(new、delete对称定义)原创 2023-10-17 00:07:47 · 197 阅读 · 0 评论 -
读书笔记:Effective C++ 2.0 版,条款8(重载new delete)
读书笔记:Effective C++ 2.0 版,条款8(重载new delete)原创 2023-10-16 23:51:48 · 146 阅读 · 0 评论 -
读书笔记:Effective C++ 2.0 版,条款6(析构时delete)、7(内存不足)
读书笔记:Effective C++ 2.0 版,条款6(析构时delete)、7(内存不足)原创 2023-10-16 23:25:56 · 283 阅读 · 0 评论 -
读书笔记:Effective C++ 2.0 版,条款5:对应的new和delete要采用相同的形式
条款5:对应的new和delete要采用相同的形式记得以前调查过,new[]返回的指针指向的内存空间,前面有预留的一个空间存储数组的大小。chatgpt说每种编译器实现不太一样。但没说明各编译器具体如何实现。win10 vs2022中实测是前面预留16byte,最前面8byte存储数组的byte大小,数组个数还需要根据类型大小。以下为测试代码和输出结果。原创 2023-10-16 22:56:04 · 92 阅读 · 0 评论 -
读书笔记:Effective C++ 2.0 版 1997年Scott Meyers,条款1、2、3、4
个人不是完全支持这一条款,因为c语言风格的性能往往更好。cpp风格一般多了函数调用成本,但编译期实现是否可以通过内联完全优化掉,值得怀疑。c语言把更多的事情交给了用户去决定,cpp方便了用户,但有所牺牲。c函数安全性差些,但可控性更好,使用者需要自己做的事更多。以上条款在cpp中可行。在c中也需要尽量参考。类型安全和扩展性是C++的基石。cpp的可移植性没有c好。目的:重新过一遍这本书。原创 2023-10-10 23:59:36 · 276 阅读 · 0 评论 -
C语言基础语法复习08-位域bit-fields
int 、 signed int 、 unsigned int 及 _Bool之外的类型未定义,编译期实现决定。C++ 编程语言中,位域的宽度能超出底层类型,并且 int 类型的位域始终为有符号。无名0bit表示开始新的unsigned int。以上语法定义可能是EBNF的一种变体。以上最后定义的就是位域,其中opt表示类型declarator可选。位域不必在字节的起点开始,故不能取位域的地址。_Bool x:1;原子类型修饰未定义,编译器决定。位域打包顺序未定义,编译期决定。不可能有指向位域的指针。原创 2023-10-09 23:51:16 · 182 阅读 · 0 评论 -
C语言基础语法复习07-c语言关键字的解释
C语言基础语法复习07-c语言关键字的解释原创 2023-09-19 01:16:39 · 126 阅读 · 1 评论 -
C语言基础语法复习06-c语言关键字
C语言基础语法复习06-c语言关键字原创 2023-09-15 00:23:00 · 260 阅读 · 0 评论 -
C语言基础语法复习05-c17详解
C17(C18)是C11标准的"bugfix发布",没有新功能。原创 2023-09-15 00:11:52 · 280 阅读 · 0 评论 -
C语言基础语法复习04-c99新特性详解
C语言基础语法复习04-c99新特性详解原创 2023-09-14 23:53:13 · 387 阅读 · 0 评论 -
C语言基础语法复习03-c11新特性详解
threads.h stdatomic.h _Atomic类型 _Thread_local存储类型。C11(也被称为C1X)指ISO标准ISO/IEC 9899:2011。fopen_s(),strcat_s() 等边界检查函数接口,安全函数。删除了 gets() 函数,使用更安全的函数gets_s()替代。匿名结构体/联合体、static_assert、fopen(x)alignas alignof aligned_alloc示例。_Noreturn 函数标记示例。quick_exit()函数。原创 2023-09-14 01:08:36 · 510 阅读 · 0 评论 -
C语言基础语法复习02-int main(int argc, char *argv[])
C语言基础语法复习02-int main(int argc, char *argv[])原创 2023-09-13 23:51:12 · 151 阅读 · 0 评论 -
C语言基础语法复习01-HelloWorld
https://www.runoob.com/cprogramming/c-tutorial.html 语法。https://godbolt.org/ 对应的x64 msvc v19.36编译结果。https://chat.openai.com/ 对编译结果进行解释。https://quick-bench.com/ 性能测试?第一段是c语言源码,一般是基本的简单语法。修改代码后,比较汇编的变更。原创 2023-09-13 23:32:17 · 77 阅读 · 0 评论 -
学习笔记-BNF、EBNF、ABNF语法格式描述规范
Intermediate BNF说明:https://www.cl.cam.ac.uk/~mgk25/iso-14977-paper.pdf。完整的在https://www.w3.org/TR/2004/REC-xml-20040204/#sec-notation。BNF变体列表:http://www.cs.man.ac.uk/~pjj/bnf/ebnf.html。中文参考:https://www.jianshu.com/p/15efcb0c06c8。典型的元语言BNF,用来描述语法的一种形式体系。原创 2023-09-06 00:34:41 · 739 阅读 · 0 评论 -
sgi_stl源码学习,stl_function.h 源码解析
sgi_stl源码学习,stl_function.h 源码解析原创 2023-04-04 14:05:36 · 194 阅读 · 0 评论