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