
C++ 11
飞-翔-鸟
游戏程序员一枚,做过三维引擎开发,后发觉移动互联网大势所趋,转行移动端开发,热爱ios应用,android应用开发,现从事游戏开发,常用语言c,lua
展开
-
一段关于c++11中lambda表达式和std::function的体验代码
#include "stdafx.h"#include #include #include // lambda表达式可以使用std::function封装std::function getLambda1() { return [](){return "She said: ";};}// 要使用lambda表达式作为参数,需要使用函数模版templatestd::f转载 2014-02-26 21:23:52 · 858 阅读 · 0 评论 -
C++11 学习笔记(7) —— path, wpath
1. 简介 使用C++编程,经常涉及到对文件的相关操作,例如,判断文件是否存在、获取文件所在的路径名、遍历某个目录下的所有文件、创建新的目录等。在旧风格的C++编程中,一般通过操作系统提供的API、字符串操作等实现上述功能。 C++11 提供的 头文件提供了丰富的文件操作的类和函数。filesystem 库是一个可一直的文件系统操作相关的库,使用POSIX标准表示文件系转载 2014-02-20 09:59:29 · 2606 阅读 · 0 评论 -
C++11学习笔记(5) —— override and final
1.简介C++为我们提供了继承和虚函数的重写特性。 在派生类中,重写虚函数不强制要求使用 virtual 关键字,并且C++并没有要求强制检查虚函数的重写是否真正覆盖了基类的虚函数,因为在派生类中,也可以增添新的虚函数,以供下一级的派生类重写。由于检查的不够严谨,就有可能产生错误。2.有可能产生的错误最常见的错误就是派生类想要重写基类的虚函数,但是由于参数类型的不同,导致结转载 2014-02-20 09:54:09 · 1093 阅读 · 0 评论 -
C++11学习笔记(1) —— auto
[-]简介根据初始化推导类型其它限定词 const 等解决特殊问题注意事项C++11 的到来又为C++注入了新鲜的血液,更严格的类型检查,新的功能特性以及新收录的STL,都使得C++11更为安全和高效。笔者将C++11的学习过程记录下来,不对之处还望指正。IDE: vs20121.简介auto是C++早就具备的关键字(局部变量默认定义为auto类型)转载 2014-02-18 23:27:47 · 937 阅读 · 0 评论 -
C++11学习笔记(4) —— new for loops
1.简介C 语言和C++的for 循环语句的使用方式大家都十分熟悉,如果你了解C#语言,应该对 foreach 的使用方式印象深刻,它简化了 for 循环的书写方式。 C++11 为我们提供了两种类似 foreach 的循环方式,分别是 for 的新用法 和 for each (注意,有空格,不是foreach)2.旧风格的 for [cpp] view转载 2014-02-18 23:50:27 · 834 阅读 · 0 评论 -
C++11学习笔记(3)—— enum
1.简介以往的enum类型将枚举成员的作用域暴露在枚举变量之外,用户不需要指定枚举类型就可以直接使用枚举的内容,这就有可能会造成名字的冲突,为了解决该你问题,C++11引入了强类型的枚举类型(strongly typed enums ).2.旧风格的enum[cpp] view plaincopy#include "stdaf转载 2014-02-18 23:43:19 · 812 阅读 · 0 评论 -
C++11学习笔记(2) —— decltype
1. 简介当我们想要方便的定义一个变量时,可以通过使用 auto 来定义变量,由编译器根据上下文推导出变量类型。但是,当我们想要推导一个表达式的返回结果类型时,auto 就无能为力了。decltype 可以解决该问题。2. 函数返回类型推导使用decltype可以动态获取函数的返回类型,如下所示[cpp] view plaincopy转载 2014-02-18 23:39:06 · 659 阅读 · 0 评论 -
C++11 新特性:Lambda 表达式
或许,Lambda 表达式算得上是 C++ 11 新增特性中最激动人心的一个。这个全新的特性听起来很深奥,但却是很多其他语言早已提供(比如 C#)或者即将提供(比如 Java)的。简而言之,Lambda 表达式就是用于创建匿名函数的。GCC 4.5.x 和 Microsoft Visual Studio 早已提供了对 lambda 表达式的支持。在 GCC 4.7 中,默认是不开启 C++ 11转载 2014-02-26 21:58:56 · 669 阅读 · 0 评论 -
遇见C++ Lambda
生成随机数字 假设我们有一个vector容器,想用100以内的随机数初始化它,其中一个办法是通过generate函数生成,如代码1所示。generate函数接受三个参数,前两个参数指定容器的起止位置,后一个参数指定生成逻辑,这个逻辑正是通过Lambda来表达的。代码 1 我们现在看到Lambda是最简形式,只包含捕获子句和函数体两个必要部分,其他转载 2014-02-26 21:49:35 · 594 阅读 · 0 评论 -
C++11学习笔记(6) —— smart pointer: shared_ptr , auto_ptr
1. 简介C++程序员最痛苦的莫过于对内存的管理,由于没有像C# 和 java的内存回收机制,C++程序员在复杂的程序中容易造成内存的泄露。即使程序员十分小心,异常的产生也有可能会造成部分内存的泄露(由于异常导致delete语句没有机会执行)。为了避免该问题,出现了各种类型的智能指针。只能指针实质就是重载了-> 和 * 操作符的类,由类来实现对内存的管理,确保即使有异常产生,也可以通过智能指针转载 2014-02-20 09:56:33 · 1128 阅读 · 0 评论