Simple Items
来源:互联网 发布:图片加音乐软件 编辑:程序博客网 时间:2024/06/06 04:36
● Item 7 多态基类中将析构函数声明为虚拟
1> 多态基类应该声明虚析构函数。如果一个类有任何虚函数,它就应该有一个虚析构函数。
2> 纯虚析构函数也必须有函数体。否则linker报错。
● Item 10 赋值函数要返回引用
赋值函数的特点:
1> 可以无限连:x = y = z = 15;
2> 满足右结合律:x = (y = (z = 15));
基于上面的特点,赋值操作必须返回*this。
+=、-=、*=等操作也算在内。
● Item 16 使用匹配的new和delete
std::string *stringArray = new std::string[100];
delete stringArray;
上面使用delete回收对象数组的资源,属于未定义行为。反之亦然。
需对typedef的数组注意:
应在实际使用中避免此类写法。需要动态数组的时候,使用STL里的string或vector。
● Item 21 必须返回对象时别返回引用
1> 绝不要返回一个局部栈对象的指针或引用
2> 绝不要返回一个被分配的堆对象的引用。原因是caller在使用该引用时,可能会因为无法保存引用而导致资源泄漏。
3> 如果存在需要一个以上这样的对象的可能性时,绝不要返回一个局部 static 对象的指针或引用。原因:多个地方使用同一个该static对象的引用,会引起理解混乱。caller们以为多次调用是多个对象,想不到竟然其实是一个对象。
● Item 22 将数据成员声明为private
理由:
1> 通过函数实现对成员的访问控制
2> 封装后,可以在实现上有自由度,来适应客户的实际需要
3> 只允许你的成员函数访问它们,你就有权力在以后修改它们。一旦声明为public或protected,就变成客户的东西了,你不能改
● Item 24 需要对所有参数实施类型转换的话,使用非成员函数
● Item 28 避免返回对象内部构件的句柄
所谓句柄,就是引用,指针,或STL中的迭代器。返回对象内部的句柄有可能会产生空悬句柄。比如下面返回的Point引用。
● Item 32 公有继承是is-a的关系
● Item 38 通过“合成”来实现附属关系、附属功能
- Simple Items
- simple
- Simple
- 关于Items
- Management items
- Items编辑器
- TaskContinuationOptions items
- items排序
- items,iteritems
- align-items
- Context.Items 用法
- DropDownList3.Items.Add
- compare items by array
- HttpContext.Current.Items用途
- IDBUX: Radio Menu Items
- Effect STL Items
- HttpContext(二)-Items
- ext 动态更新items
- JSF标签
- 谈谈SQL 语句的优化技术 (1)
- Oracle数据泵导出导入与传统导出导入的区别
- Java核心技术(多线程)一
- XML_Parse, XML_ParserCreate等依赖于库:libexpat.lib
- Simple Items
- Sqldeveloper与Sqlplus连接远程数据库的一点不同(Oracle 真是坑爹啊)
- 打印的方法
- Android的布局和Intent笔记和常用实例
- 处理ttf-mscorefonts-installer安装错误问题
- 神舟笔记本的使用感受
- eclipse +android常见错误及解决方法
- window CE 程序调试 当前断点不会命中 无法调试
- 八个学习点帮助你全面认识Oracle数据库