![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
effective c++
文章平均质量分 66
duangyhn
这个作者很懒,什么都没留下…
展开
-
effective c++ item04:确定对象被使用之前以先被初始化
Item04 确定对象被使用之前已被初始化 Class PhoneNumber{...}; Class ABEntry{ Public: ABEntry(const std::string& name,const std::string& address, const std::list& phones); Private: Std::string theName; Std::s原创 2017-08-04 12:01:04 · 203 阅读 · 0 评论 -
effective c++ item2总结:以编译器替换预处理器
Item 2: 以编译器替换预处理器(以const,enum,inline替换#define): #define不被视为语言的一部分,那正是他的问题所在。 sam1: #define ASPECT_RATIO 1.534 替换为: Const double AspectRatio=1.534; 名称记号ASPECT_RATIO也许从未被编译器看见:可能在编译器开始处理源码之前就被原创 2017-08-04 09:28:13 · 246 阅读 · 0 评论 -
effective c++:资源管理相关
以对象管理资源 许多资源被动态分配与heap内而后被用于单一区块或函数内。他们应该在控制流离开那个区开或函数时被释 class Investment{...}; //投资类型继承体系中的root class Investment* createInvestment(); //返回指针,指向Investment继承 //体系内的动态分配对象,调用者有责任删除它 void原创 2017-08-05 11:45:20 · 199 阅读 · 0 评论 -
effective c++:让接口容易被正确使用,不易被误用
让接口容易被正确使用,不易被误用 1)许多客户端错误可以因为导入新类型而获得预防。一旦正确的类型定位,限制其值有时候是通情达理的。 考虑下面的例子表现日期: class Date{ public: Date(int month,int day,int year); ... }; Date d(20,30,1997); //20月不存在的 改进: stru原创 2017-08-06 10:50:17 · 224 阅读 · 0 评论 -
effective c++:写出一个不抛出异常的swap函数
考虑写出一个不抛出异常的swap函数 假设Widget和WidgetImpl都是class: class WidgetImpl{ //针对Widget数据而设计的class public: ... private: int a,b,c; //可能很多数据 std::vectorv; //意味复制时间很长 }; 当Widget被置换时真正该做的是置换内部指针原创 2017-08-06 12:51:26 · 210 阅读 · 0 评论 -
effective c++ 关于异常安全
假设有个class用来表现夹带背景图案的GUI菜单,用于多线程,有个互斥器作为并发控制 class PrettyMenu{ public: ... void changeBackground(std::istream& imgSrc); //改变背景 ... private: Mutex mutex; //互斥器 Image * bgImage; //目前背景图案 int imageCh原创 2017-11-02 20:43:41 · 250 阅读 · 0 评论