大二时候学过c++,但是那只是为了考试在学习,大作业也就写了一个读写者线程同步的模拟,连一个完整的类都没有写过,所以我必须承认对c++了解的很少。

对于C++ 11这一新标准,我首先阅读了来自前C++标准委员会的 Danny KalevThe Biggest Changes in C++11 (and Why You Should Care)的一个中文翻译(赖勇浩),在文中我阅读到了C++ 11 引入的新特性

http://blog.csdn.net/gzlaiyonghao/article/details/6564162

1.Lambda 表达式

2.自动类型推导和 decltype

3.统一的初始化语法

4.deleted 函数和 defaulted 函数

5.nullptr空指针常量

6.委托构造函数

7.右值引用

8.C++11 的标准库

那么我不由思考为什么要引入这些变化?

在另一篇博文 C++11 中值得关注的几大变化(详解)

http://coolshell.cn/tag/c-11

我找到了一些答案

比如Lambda表达式的引入

C++引入Lambda的最主要原因就是1)可以定义匿名函数,2)编译器会把其转成函数对象。相信你会和我一样,会疑问为什么以前STL中的ptr_fun()这个函数对象不能用?(ptr_fun()就是把一个自然函数转成函数对象的)。原因是,ptr_fun() 的局限是其接收的自然函数只能有1或2个参数。

那么,除了方便外,为什么一定要使用Lambda呢?它比传统的函数或是函数对象有什么好处呢?我个人所理解的是,这种函数之年以叫“闭包”,就是因为其限制了别人的访问,更私有。也可以认为他是一次性的方法。Lambda表达式应该是简洁的,极私有的,为了更易的代码和更方便的编程。

其他的特性就不在此处细说

那么哪些特性是比较实用的呢

在另一篇博文中由 伯乐在线 - 治不好你我就不是兽医 翻译自 Marius Bancila的 《C++开发者都应该使用的10个C++11特性http://blog.jobbole.com/44015/ 很好的向我们说明了我们应该学会并使用的C++11的新特性。

另外的

我还找了两篇英文的关于C++11的详解

http://www.codeproject.com/Articles/312029/Cplusplus11-A-Glance-part-1-of-n

http://www.codeproject.com/Articles/314415/Cplusplus11-A-Glance-part-2-of-n

这两篇是一个系列的,作者是Lakamraju Raghuram。

篇幅比较长,所以作者对更多的C++11新特性进行了解读。

如果你想了解更多,可以访问http://www.open-std.org/jtc1/sc22/wg21/docs/papers/

那里有几乎全部C + +标准委员会的文件,可供你的参考

Stroustrup先生关于C++11的FAQ http://www.stroustrup.com/C++11FAQ.html

我的问题

1.支持C++11新特性的编译器是否还能编译以前的c++工程,比如我电脑中使用vc11还能编译以前的c++代码吗?

2.auto自动类型推导是否会导致一些错误,比如

auto x = 1;

C++11 应该是认为x为int型,实际上用户是想x为double

3.如何理解 rvalues, lvalues, xvalues, glvalues,  prvalues

C++03,表达式只是 rvalue 或  lvalue.

4.Stroustrup为什么讨厌宏定义(http://www.stroustrup.com/C++11FAQ.html#bad-features

nullptr空指针产生原因是NULL只是一个宏定义,而不是关键字。但是宏还是有许多好处啊。为什么感觉Stroustrup是希望C++完全没有宏。

5.C++的入门门槛好高啊,看C++ prime 看了好久都没看完。那更新了C++11的新特性以后 C++ prime这类书不是就更厚了,更难学习了。我该如何学习C++呢?

以上就是我的问题

再此感谢大家阅读我的博文

我对C++认识浅薄,如有错误,还请您指出。若有些问题过于简单或者可笑,也请您匡正

homework-07 C++ 11 能好怎的更多相关文章

  1. 日本IT行业劳动力缺口达22万 在日中国留学生迎来就业好时机 2017/07/18 11:25:09

    作者:倪亚敏 来源:日本新华侨报 发布时间:2017/07/18 11:25:09     据日本政府提供的数据,日本2018年应届毕业生的“求人倍率”已经达到了1.78倍.换言之,就是100名大学生 ...

  2. homework 08_2 C++11新特性作业之二

    ---恢复内容开始--- 1.使用Lambda表达式计算“hello world!”中字母e和i的数量 下面是代码: #include "stdafx.h" #include< ...

  3. 30天,APP创业从0到1【7.11郑州站】

    活动概况 时间:2015年07月11日13:30-16:30 地点:慧谷咖啡(郑州杨金路9号河南外包产业园天元W栋) 主办:APICloud.环信.河南中医药大学医药信息化实验室 网址:www.api ...

  4. ORA-245: In RAC environment from 11.2 onwards Backup Or Snapshot controlfile needs to be in shared location (Doc ID 1472171.1)

    巡检时遇到错误如下: alert日志: Wed Dec 19 01:00:29 2018Errors in file /oracle/base/diag/rdbms/usap/usap1/trace/ ...

  5. 第11章 认识和学习bash

    认识bash这个shell 硬件.内核和shell 用户操作计算机流程如下: 用户——>用户界面(shell,KDE,application)——>核心(kernel)——>硬件(h ...

  6. 11.7 iostat: I/O信息统计

    iostat是I/O statistics(输入/输出统计)的缩写,其主要功能是对系统的磁盘I/O操作进行监视.它的输出主要是显示磁盘读写操作的统计信息,同时也会给出CPU的使用情况.同vmstat命 ...

  7. Final阶段第1周/共1周 Scrum立会报告+燃尽图 04

    作业要求[https://edu.cnblogs.com/campus/nenu/2018fall/homework/2483] 版本控制:https://git.coding.net/liuyy08 ...

  8. 福大软工1816 · 评分结果 · Alpha冲刺答辩总结

    作业地址:https://edu.cnblogs.com/campus/fzu/Grade2016SE/homework/2462 作业提交准则 按时交 - 有分 晚交 - 0分 迟交一周以上 - 倒 ...

  9. 简简单单学会C#位运算

    一.理解位运算 要学会位运算,首先要清楚什么是位运算?程序中的所有内容在计算机内存中都是以二进制的形式储存的(即:0或1),位运算就是直接对在内存中的二进制数的每位进行运算操作 二.理解数字进制 上面 ...

  10. 【RDA】使用RDA(Remote Diagnostic Agent)工具对数据库进行健康检查

    [RDA]使用RDA(Remote Diagnostic Agent)工具对数据库进行健康检查 分类: Linux RDA英文全称叫做"Oracle Remote Diagnostic Ag ...

随机推荐

  1. Leetcode049. Group Anagrams

    //hashmap implement with STL class Solution { public: vector<vector<string>> groupAnagra ...

  2. Loadrunner:安装LR11.0破解步骤及License

    破解步骤: 1.关闭LR相关程序 2.运行LicenseDelete程序,清除LR原来的License 3.将lm70.dll和mlr5lprg.dll这两个文件复制并粘贴到LR安装目录下的bin文件 ...

  3. 添加 SecondaryNameNode

    网络上的很多人写的过程都是错的,关键配置反而不写. SecondaryNameNode的启动有两种方式 一:在整个hdfs系统启动时,在namenode上执行start-dfs.sh则namenode ...

  4. .NET Web开发总结

    在aspx文件中  创建控件 在右下角有控件信息 按类排序 会将控件信息安装类排序 点击控件 会增加属性页面的分页[事件]页面  可以增加其事件函数 字符串操作及其时间操作 fn_name.Inser ...

  5. 破解source insignt方法

    source insignt版本:官网3.5版本 方法:在桌面建立一个文本文档,将下面内容拷贝进去,保存为.reg文件(注意拓展名问题,自己设置),然后双击即可. win7  64bit Window ...

  6. 无法运行maven项目

    tomcat Server Location 选择 User Tomcat installation 设置CATALINA_HOME环境变量(tomcat start.bat启动不了)1.CATALI ...

  7. Entity Framework中的多个库操作批量提交、事务处理

    在Entity Framework 中使用SaveChanges()是很频繁的,单次修改或删除数据后调用SaveChanges()返回影响记录数. 要使用批量修改或者批量删除数据,就需要SaveCha ...

  8. Silverlight动态设置WCF服务Endpoint

    2013-02-02 05:57 by jv9, 1763 阅读, 3 评论, 收藏, 编辑 去年12月收到一位朋友的邮件,咨询Silverlight使用WCF服务,应用部署后一直无法访问的问题,通过 ...

  9. 前端构建工具grunt

    简单配置grunt 配置gulp还是grunt都是在node的环境下安装的,所以在这之前保证你的node环境已经安装好了! -------------------------------------- ...

  10. 【原】SBT构建Scala应用

    [转帖] 原文地址:https://github.com/CSUG/real_world_scala/blob/master/02_sbt.markdown 尊重版权,尊重他人劳动成果,转帖请注明原文 ...