TMP 模板元编程
0.explicit构造函数比non-explicit构造函数好。
1.可以用const 来代替#define 定义一个常量。
#define没有作用域,也没有封装性。
但enum不可以取地址,而const 常量能取地址。因此指针或引用不能指向enum常量。
#define定义宏时,可以用template inline函数代替。
#ifdef/#ifndef 很重要。
const vector<int>::iterator pos; //类似T* const 即指向不变
vector<int>::const_iterator pos; //类似const T* 即指向的元素不变。
函数返回值后加const 为了避免意外发生。
成员函数如果常量性不同就可被重载。
编译器遵循bitwise constness准则。如果想要实现logical constness,则用mutable改变const值
bitwise constness:只要成员函数声明为const,则类中任何一个成员都不能变。
logical constness:对于客户来说不变即可。
当重载成员函数(只有const区别),则非const调用const函数为好,中间可进行强制转换。
在写函数时要考虑const。
面对成员变量为const或reference时,他们一定要初始化列表,而不是赋值。
构造函数用初始化列表初始化。
当构造函数的初始化和赋值效率差不多时,则创建private函数存放共同的部分,在多个构造函数中调用。
当两个类在不同编译单元中,当一个类要用到另一个类对象时,不知道初始化顺序,所以为了确保顺序,必须定义一个函数
当变为下面时,
/*A& A()
{
static A a;
return a;
}
*/
情况好转。
这就是传说的singleton模式。
改进版
分享到:
相关推荐
从给出的部分内容来看,读书笔记主要聚焦于以下几个知识点: 1. C++语言的联邦概念:C++是一个由多个次语言构成的语言联邦,这包括了C语言核心、面向对象的C++、模板C++以及标准模板库(STL)。这种理解对于深入...
effective C++ 很好 很不错 最好的C++进阶资料
Effective C++读书笔记 本文总结了Effective C++读书笔记,涵盖了C++的四个主要次语言:C、Object-Oriented C++、Template C++和STL。同时,文章还讨论了高效编程守则,包括使用const、enum和inline替换#define,...
摘录了《Effective C++》 (Scott Meyers 著)中有参考价值的编写代码建议,方面阅读
《Effective Modern C++:改善C++11和C++14的42个具体做法(影印版)(英文版)》中包括以下主题:剖析花括号初始化、noexcept规范、完美转发、智能指针make函数的优缺点;讲解std∷move,std∷forward,rvalue引用和全局...
根据给定的文件信息,以下是对“精版Effective STL读书笔记”的详细解析,重点提炼了STL(标准模板库)中的关键知识点。 ### 标题:“精版Effective STL读书笔记” 此标题暗示了文档是针对《Effective STL》一书的...
Effective C++是一本深入探讨C++编程实践的书籍,它提供了许多提高代码质量和效率的建议。以下是基于标题、描述和部分内容的关键知识点: 1. **虚函数的声明与使用**: - 在C++中,虚函数是实现多态性的关键。它们...
自己整理的侯捷版本<<Effective C++ 改善程序与设计的55个具体做法>> 学习笔记.
Effective C++笔记1 本笔记总结了Effective C++的第1到第11条款,涵盖了C++语言的多个方面,包括构造函数、拷贝构造函数、拷贝赋值函数、const关键字、enum、inline函数、定义域、static变量、初始化、编译器生成的...
内容简介:有人说C++程序员可以分为两类,读过Effective C++的和没读过的。当您读过《Effective C++:改善程序与设计的55个具体做法(第3版)(中文版)(双色)》之后,就获得了迅速提升自己C++功力的一个契机。
Effective C++笔记1 本笔记概括了 Effective C++ 中的四十个规则的第一个部分,涵盖了 C++ 语言的基本概念、const 的使用、inline 函数的应用、对象的初始化等方面。 规则 1:将 C++ 视为语言联合体 -------------...
《Effective C++》是Scott Meyers撰写的一本经典C++编程指南,旨在帮助开发者写出更高效、更可维护的代码。这本书由一系列的编程实践建议组成,每一条建议都被称为一个"项",覆盖了C++语言的多个方面,包括对象、类...
### Effective_C++_3rd笔记的关键知识点概览 #### 视C++为一个语言联邦(条款01) C++作为一门复杂且功能丰富的语言,它实际上涵盖了多种编程范型,包括过程式、面向对象、函数式、泛型以及元编程。这种多样性的...
通过这些学习笔记,我们可以了解到《Effective C++》不仅为我们提供了C++编程中的一些基本和高级技巧,也教会我们如何遵循最佳实践,编写出更加高效、健壮的C++代码。学习这些知识点,对于提高C++编程能力和解决实际...
通常C++要求你对所使用的任何东西提供一个定义式,但如果它是个class专属常量 又是static且为整数类型(integral type,例如int,char,bool),则可特殊处理。只要不取它们 的地址,你可以声明并使用它们而无需提供...
1. **对象构造与析构**:笔记会讲解C++中对象的生命周期,包括构造函数的作用、默认构造函数、拷贝构造函数和移动构造函数的选择与优化,以及如何利用析构函数来清理资源。 2. **资源管理**:C++中的智能指针(如...
【C++ Primer 笔记1】 C++ 是一种强大的编程语言,它有着丰富的特性和严格的类型系统。在学习C++时,了解并掌握其基本概念和技术是非常重要的。本笔记主要涵盖了C++的一些关键知识点,包括预处理器、类型系统、命名...