
effective c++
文章平均质量分 68
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 · 236 阅读 · 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 · 279 阅读 · 0 评论 -
effective c++:资源管理相关
以对象管理资源许多资源被动态分配与heap内而后被用于单一区块或函数内。他们应该在控制流离开那个区开或函数时被释class Investment{...};//投资类型继承体系中的root classInvestment* createInvestment(); //返回指针,指向Investment继承 //体系内的动态分配对象,调用者有责任删除它void原创 2017-08-05 11:45:20 · 228 阅读 · 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 · 250 阅读 · 0 评论 -
effective c++:写出一个不抛出异常的swap函数
考虑写出一个不抛出异常的swap函数假设Widget和WidgetImpl都是class:class WidgetImpl{ //针对Widget数据而设计的classpublic: ...private: int a,b,c; //可能很多数据 std::vectorv; //意味复制时间很长};当Widget被置换时真正该做的是置换内部指针原创 2017-08-06 12:51:26 · 236 阅读 · 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 · 280 阅读 · 0 评论