![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
effective c++
三十而学
c++入门
展开
-
史上最简练的effective c++(条款49-55)new,delete,杂项讨论
史上最简练的effective c++(条款49-55)new,delete,杂项讨论条款49-了解new-handler的行为条款50-了解new和delete的合理替换时机条款51-编写new和delete时需固守常规条款52-写了placement new 也要写placement delete条款53-不要轻忽编译器的警告条款54-让自己熟悉TR1在内的标准程序库条款55-让自己熟悉Boost 条款49-了解new-handler的行为 可用std::set_new_handler设置new处理函数原创 2020-08-17 11:48:06 · 110 阅读 · 0 评论 -
史上最简练的effective c++(条款41-48)模板与泛型编程
史上最简练的effective c++(条款41-48)模板与泛型编程条款41-了解隐式接口和编译期多态条款42-了解typename的双重意义学习处理模板化基类内的名称条款44-将与参数无关的代码抽离template条款45-运用成员函数模板接受所有兼容类型条款46-需要类型转换时请为模板定义非成员函数条款47-请使用traits classes 表现类型信息条款48-认识template元编程 条款41-了解隐式接口和编译期多态 隐式接口,即是template的接口,在编译期才生成具体函数,多态也基于表原创 2020-08-17 11:23:41 · 143 阅读 · 0 评论 -
史上最简练的effective c++(条款32-40)
史上最简练的effective c++(条款32-40)条款32-确定你的public继承模塑出is-a关系条款33-避免遮掩继承而来的名称条款34-区分接口继承和实现继承条款35-考虑virtual函数以外的其它选择条款36-绝不重新定义继承而来的non-virtual 函数条款37-绝不重新定义继承而来的缺省参数值条款38-通过复合塑模出has-a或“根据某物实现出”条款39-明智而审慎地使用private继承条款40-明智而审慎地使用多重继承 条款32-确定你的public继承模塑出is-a关系 di原创 2020-08-17 09:56:26 · 122 阅读 · 0 评论 -
史上最简练的effective c++(条款26-31)实现
史上最简练的effective c++(条款26-31)实现 条款26——尽可能延后变量定义式出现的时间 为了避免异常抛出,早声明的变量未使用; 循环中中的定义应该大多数情况下移到循环之前; 条款27——尽量少做转型动作 const_cast:常量性移除; dynamic_cast: 向下转型; reinterpret_cast:低级转型,比如指针转非指针; static_cast:强迫隐式转换,无法转化const; 如果转型必要,尽量隐藏在函数背后,避免用户不必要的麻烦; 试着用virrtual、重载、原创 2020-07-16 15:51:20 · 195 阅读 · 0 评论 -
史上最简练的的effective c++(条款18-25)设计与声明
史上最简练的的effective c++(条款18-25)设计与声明 条款18——让接口容易被正确使用,不易被误用 保持接口的一致性,以及内置类型的行为兼容; 防止误用,建立新类型以约束用户输入参数,应用智能指针,消除用户资源管理的责任; shared_ptr可以防范DLL问题(跨DLL的new和delete),应用其诞生的DLL的delete; 条款19——设计class犹如设计type 考虑创建与销毁(构造、析构)、初始化与赋值(复制构造、赋值运算符)、参数形式、参数合法性、继承性、隐式/显式类原创 2020-07-16 15:02:36 · 113 阅读 · 1 评论 -
史上最简练的effective c++(条款13-17)资源管理
史上最简练的effective c++(条款13-17)资源管理 条款13——以对象管理资源 两个关键想法:获得资源后立刻放进管理对象,管理对象运用析构函数确保资源被释放; auto_ptr:不可复制,复制后原先的指针变成NULL,不可指向数组,因为其析构函数中使用的是delete方法,取而代之的是c++的string vector等数组类; shared_ptr:共享,指针数可增加,为零时销毁资源; weak_ptr:指向shared_ptr的资源,不增加计数,访问资源必须转化为shared_ptr;原创 2020-07-16 12:48:53 · 101 阅读 · 0 评论 -
史上最简练的effective c++(条款05-12)构造/析构/赋值运算
史上最简练的effective c++(条款05-12)构造/析构/赋值运算 条款05——了解C++默默编写并调用了哪些函数 复制构造函数 复制运算符函数 默认构造函数 析构函数 当默认的复制构造函数、复制运算符函数违背C++规则时,不会默认生成对应函数,例如,成员变量有const成员,无法被赋值。 条款06——若不想使用自动生成的函数,可以明确拒绝 ; 可以声明为delete; 可以声明为private并不去实现它。 条款07—— 为多态基类声明virtual 析构函数 为了销毁drived原创 2020-07-15 17:58:31 · 108 阅读 · 0 评论 -
史上最简练的effective c++(条款01-04)让自己习惯c++
史上最简练的effective c++(条款01-04)让自己习惯c++ 条款01——视C++为一个语言联邦 c :区块、语句、预处理、内置数据类型、指针内置数组等基本部分; Object-Oriented C++:面向对象的类、封装、继承、多态等; Template:泛型编程,即模板元编程(TMP); STL:Template程序库,主要包含容器、迭代器、算法; 条款02——尽量以const、enum、inline替换#define(用编译器替换预处理器) #define常量时,预处理后,编译时将正文中原创 2020-07-15 16:41:38 · 164 阅读 · 0 评论