C++11:类的改进

  为了简化和扩展类的设计,C++11对类做了多项改进。这包括允许构造函数被继承和彼此调用、更佳的方法访问控制方式以及移动构造函数和移动赋值运算符。显示转化运算符  自动类型转换有时候会导致意转换问题的发生。C++11引入关键字explicit,以禁止单参数构造函数导致的自动转换classPerso

#C++ 11  

C++11 :用户定义字面量

  用户自定义字面值,或者叫“自定义后缀”更直观些,主要作用是简化代码的读写。#include <iostream>long double operator"" _mm(long double x) { return x / 1000; }long double op

#C++ 11  

C++11:常量表达式

constexpr  C++本身已经具备了常数表达式的概念,比如1+2,3*4这种表达式总是会产生相同的结果并且没有任何副作用。如果编译器能够在编译时就把这些表达式直接优化并植入到程序运行时,将能增加程序的性能。一个非常显著的例子就是在数组的定义阶段:#defineLEN10intlen_foo()

#C++ 11  

C++11:强类型枚举

  C++11引入了一种新的枚举类型,即“枚举类”,又称“强类型枚举”。声明请类型枚举非常简单,只需要在enum后加上使用class或struct。如:enumOld{Yes,No};//oldstyleenumclassNew{Yes,No};//newstyleenumstructNew2{Ye

#C++ 11  

C++11:基于范围的for循环、静态断言

基于范围的 for 循环  C++ 11 加强了 for 语句的功能,以更好的支持用于遍历集合的 for_each 范式。在新的形式中,用户可以使用 for 去迭代遍历 C 风格的数组、初始化列表,以及所有非成员 begin() 和 end() 被重载的容器。  当你仅仅想获取集合/数组中的元素来做

#C++ 11  

C++11:初始化

  初始化是一个非常重要的语言特性,最常见的就是对对象进行初始化。在传统C++中,不同的对象有着不同的初始化方法,例如普通数组、POD(plainolddata,没有构造、析构和虚函数的类或结构体)类型都可以使用{}进行初始化,也就是我们所说的初始化列表。而对于类对象的初始化,要么需要通过拷贝构造、

#C++ 11  

C++11:类型推导

  在传统C和C++中,参数的类型都必须明确定义,这其实对我们快速进行编码没有任何帮助,尤其是当我们面对一大堆复杂的模板类型时,必须明确的指出变量的类型才能进行后续的编码,这不仅拖慢我们的开发效率,也让代码变得又臭又长。  C++11引入了auto和decltype这两个关键字实现了类型推导,让编译

#C++ 11  

C++ 11学习笔记

什么是C+11  C++11标准为C++编程语言的第三个官方标准,正式名叫ISO/IEC14882:2011-Informationtechnology--Programminglanguages--C++。在正式标准发布前,原名C++0x。它将取代C++标准第二版ISO/IEC14882:2003

#C++ 11