摘要: 1.引用本身不是对象,只是引用对象的别名,没有内存空间产生 2.引用必须严格类型匹配 3.而常量引用 const T& 可以引用字面值常量及表达式 其实也就是右值,且常量引用的不同与T类型对象时,如果可以类型转换则会类型转换为T类型常量引用,不过会产生临时变量(C++ Primer): code: 阅读全文
posted @ 2018-08-19 14:58 FeckCode 阅读(571) 评论(0) 推荐(0) 编辑
摘要: 原则1:windows下,k字节基本类型以k字节倍数偏移量对齐,自定义结构体则以结构体中最高p字节基本类型的p字节倍数偏移量对齐,Linux下则以2或4字节对齐; 原则2:整体对齐原则,例如数组结构体,首元素字节对齐,而次元素字节未对齐,则数组元素不是字节对齐,需对尾部基本数据以结构体中最高p字节基 阅读全文
posted @ 2018-04-18 21:15 FeckCode 阅读(2130) 评论(0) 推荐(0) 编辑
摘要: 详细链接 阅读全文
posted @ 2017-09-20 20:20 FeckCode 阅读(442) 评论(0) 推荐(0) 编辑
摘要: 转载:https://zhuanlan.zhihu.com/p/22666153 阅读全文
posted @ 2017-08-06 20:46 FeckCode 阅读(102) 评论(0) 推荐(0) 编辑
摘要: CMakeList.txt: boost::filesystem boost::filesystem库的核心类是path类,他屏蔽了不同文件系统的差异,使用了可移植的POSIX语法提供了通用的目录和路径表示,并且支持POSIX的符号链接 boost::filesystem::path path的构造 阅读全文
posted @ 2017-08-05 21:55 FeckCode 阅读(311) 评论(0) 推荐(0) 编辑
摘要: 1.Coping 函数应该确保复制对象内的"每一个成员变量",和调用合适的 "base class"构造函数(base class 某些成员往往是private的) 2.不要为了代码重复性,让一个Coping函数去调用另一个Coping函数(无意义),如果出现过多代码重复,可声明一个init函数用于 阅读全文
posted @ 2017-07-30 22:05 FeckCode 阅读(90) 评论(0) 推荐(0) 编辑
摘要: 1.确保当对象自我赋值时operator=有良好的行为,其中的技术包括 "来源对象" 和 "目标对象" 的地址,精心周到的语句顺序,以及“ copy and swap ” 技术 2.确定任何函数执行操作一个以上对象时,而其中多个对象是同一个对象时,其行为任然正确 Toal:一般具有管理资源分配的类使 阅读全文
posted @ 2017-07-30 21:00 FeckCode 阅读(183) 评论(0) 推荐(0) 编辑
摘要: 1.令赋值操作返回一个reference to *this(除非你有个标新立异的理由,那就随大众- - ) 阅读全文
posted @ 2017-07-30 20:38 FeckCode 阅读(82) 评论(0) 推荐(0) 编辑
摘要: 在构造和析构执行期间不要调用virtual函数,因为这类调用从不会下降至derived class(比起当前执行构造函数和析构函数) 如果在base class 构造函数或者析构函数调用virtual,derived class构造时会先构造base class,则base class中的virtu 阅读全文
posted @ 2017-07-30 17:32 FeckCode 阅读(134) 评论(0) 推荐(0) 编辑
摘要: 1.析构函数绝对不要吐出异常,如果一个析构函数可能抛出异常,析构函数应该捕获任何异常,然后要么吞下它们或者退出程序 2.如果用户需要对析构内的可能抛出异常的操作做出反应,则应该将操作放入除析构函数外的普通函数中 阅读全文
posted @ 2017-07-30 16:41 FeckCode 阅读(130) 评论(0) 推荐(0) 编辑