- 博客(5)
- 资源 (1)
- 收藏
- 关注
原创 More Effective C++:条款3:绝对不要以多态的方式处理数组
继承很重要的一个性质是可以通过指向基类的指针/引用操作衍生类C++也允许通过基类的指针操作衍生类的数组,但是操作的结果几乎不会按照预期进行。打印BST数组中所有内容void printBSTArray(ostream& s,const BST array[],int num){ for(int i =0; i < num; ++i){ s << array[i]; }}调用BST BSTArray[10];printBSTArray(cout, BSTA
2021-08-01 15:50:38
169
原创 C++提高笔记
静态成员类型前加static静态成员变量所有对象共享同一份数据在编译阶段分配内存 类内声明类外初始化静态成员函数所有对象共享同一个函数静态成员函数只能访问静态成员变量私有权限同样无法访问C++对象模型和this指针成员变量和成员函数分开存储类内的成员变量和成员函数分开存储,只有非静态成员变量才属于类的对象上非静态成员变量占对象空间静态成员变量不占对象空间成员函数(静态/非静态)也不占对象空间this指针概念每一个非静态成员函数只会诞生一份函数实例,也就是说多个
2021-08-01 11:21:20
208
原创 More Effective C++:条款2:最好使用C++转型操作符
旧式C强制类型转换的缺点1、几乎任何类型都可以随意转换,差异太大;2、难以辨识,C强制类型转换使用()和类型名,不易和其他区分;C++导入了4个新型转型操作符static_castconst_castdynamic_castreinterpret_cast虽然长得复杂,但是一眼就能看出来是转型操作stactic_cast与旧式C转型相似,不能将struct转为int、不能将double转为指针。它也不能移除表达式的常量特性,不过const——cast可以。const_cast它只
2021-07-29 22:59:54
208
原创 More Effective C++:条款一:仔细区别指针和引用
仔细区别指针和引用指针和引用看似非常相似指针:*、->引用:&、.都是在间接参考其他对象区别一引用必须绑定某个对象,而指针可以设为nullptr但是看下面这个代码char *p = 0;//nullptrchar &r = *p;//未定义错误r实际上仍然没有绑定对象没有null reference意味着引用会比指针效率更高,因为使用引用前无须测试其有效性。void printDouble(const double& rd){ cout <&l
2021-07-28 20:09:39
194
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人