01详解C++11右值引用
右值引用恶心的地方在于,当你看到它的时候根本不知道它的存在有什么意义,它是用来解决什么问题的。所以我不会马上介绍什么是右值引用。更好的方式是从它将解决的问题入手,然后讲述右值引用是如何解决这些问题的。这样,右值引用的定义才会看起来合理和自然
02C++11右值引用与move语义
右值引用 (Rvalue Referene) 是 C++ 新标准 (C++11, 11 代表 2011 年 ) 中引入的新特性 , 它实现了转移语义 (Move Sementics) 和精确传递 (Perfect Forwarding)。它的主要目的有两个方面:1.消除两个对象交互时不必要的对象拷贝,节省运算存储资源,提高效率.2.能够更简洁明确地定义泛型函数.3.对于没有针对右值引用作重载的类,move不起作用
03C++语言的15个晦涩特性
这个列表收集了 C++ 语言的一些晦涩(Obscure)特性,是我经年累月研究这门语言的各个方面收集起来的。C++非常庞大,我总是能学到一些新知识。即使你对C++已了如指掌,也希望你能从列表中学到一些东西

04C++类模板中的静态成员
当类模板中有静态成员变量时,情况与普通类的静态成员变量有所不同。普通类中的静态成员变量需要在某个代码文件中显式声明,以便在该代码文件编译后可以为静态成员变量留出存储空间供之后链接使用,而类模板中的静态变量却无法如此处理
05C++编译器无法捕捉到的8种错误
那些编译器无法捕获到的错误才是最危险的。这类错误不太容易察觉到,但可能会导致严重的后果,比如不正确的输出、数据被破坏以及程序崩溃。随着项目的膨胀,代码逻辑的复杂度以及众多的执行路径会掩盖住这些bug,导致这些bug只是间歇性的出现,因此使得这类bug难以跟踪和调试
06深入解释C++直接初始化与复制初始化的区别
当用于类类型对象时,初始化的复制形式和直接形式有所不同:直接初始化直接调用与实参匹配的构造函数,复制初始化总是调用复制构造函数。复制初始化首先使用指定构造函数创建一个临时对象,然后用复制构造函数将那个临时对象复制到正在创建的对象

07C++ 对象初始化和赋值
在C++中,当一个新对象被创建时,会有初始化操作;而赋值是修改一个已经存在的对象的值。
08C++中的new和operator new以及placement new
所谓placement new就是在用户指定的内存位置上构建新的对象,这个构建过程不需要额外分配内存,只需要调用对象的构造函数即可
09关于snprintf,_snprintf,_snprintf_s操作
众所周知,sprintf不能检查目标字符串的长度,可能造成众多安全问题,所以都会推荐使用snprintf(c++11),snprintf(linux),_snprintf_s(win),这里说一下各个的区别

10C++数组与指针详解
所谓数组,就是相同数据类型的元素按一定顺序排列的集合,就是把有限个类型相同的变量用一个名字命名,然后用编号区分他们的变量的集合,这个名字称为数组名,编号称为下标。组成数组的各个变量称为数组的分量,也称为数组的元素,有时也称为下标变量。
11C++ 运算符优先级列表
优先级从上到下依次递减,最上面具有最高的优先级,逗号操作符具有最低的优先级。表达式的结合次序取决于表达式中各种运算符的优先级。优先级高的运算符先结合,优先级低的运算符后结合,同一行中的运算符的优先级相同
12生成可调试的Release版本二进制文件
本文讲的是不编译完全release的可执行文件,而是使用cmake的RelWithDebugInfo(附加调试信息的编译,它的效果下面会说明)或者Debug编译也可以生成release版本的可执行文件进行调试.

点击排行

站长推荐

猜你喜欢
站点信息
- 建站时间:2016-04-01
- 文章统计:728条
- 文章评论:82条
- QQ群二维码:扫描二维码,互相交流
