大二时候学过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. CSS选择器,CSS3选择器

    CSS选择器 ------->CSS选择器优先级 1>通配符选择器(CSS2) 选择所有元素,所有浏览器都支持. *{ margin:0; padding:o; } 2>元素选择器( ...

  2. ittype导师课程 - SAP顾问课程,云课堂,个性辅导

    ittype致力于成为最专业的<企业管理研究+管理信息化需求研究+解决方案+项目+人才>全生态链服务与功能平台,平台网址:www.ittype.com. 平台由导师+学员模式,导师教导学员 ...

  3. MySQL的20条基本优化 加参考资料

    mysql的性能优化包罗甚广:索引优化,查询优化,查询缓存,服务器设置优化,操作系统和硬件优化,应用层面优化(web服务器,缓存)等等.这里的记录的优化技巧更适用于开发人员,都是从网络上收集和自己整理 ...

  4. puppet实现主从部署各种软件实战参考模型

    puppet实现主从部署各种软件实战参考模型   实验要求:     1.我将准备三个节点 node2 , node3 , node4 2.我们想让节点node3部署ntp,nginx ;节点node ...

  5. 搭建高性能计算环境(八)、应用软件的安装之gromacs

    1,下载安装新版本的gcc(高版本的gcc只是推荐使用的,系统自带的gcc4.4照样能正常编译.运行) wget http://ftp.tsukuba.wide.ad.jp/software/gcc/ ...

  6. 导出excel表功能

    前台: <asp:Button ID="btndao" runat="server"  Text="导出excel文件" onclic ...

  7. Silverlight RadGridView的HeaderCellStyle样式

    效果图 <UserControl x:Class="SilverlightApplication7.MainPage" xmlns="http://schemas. ...

  8. NetCat使用手册

    简介:   在网络工具中有“瑞士军刀”美誉的NetCat(以下简称nc),在我们用了N年了至今仍是爱不释手.因为它短小精悍(这个用在它身上很适合,现在有人已经将其修改成大约10K左右,而且功能不减少) ...

  9. encodeURIComponent编码后java后台的解码

    解决方法一: JavaScript: window.self.location="searchbytext.action?searchtext="+encodeURICompone ...

  10. JS中的控制函数调用:call(),apply()和bind()

    所有的函数都具有call(),apply()和bind()方法.它们可以在执行方法的时候用一个值指向this,并改变面向对象的作用域. apply方法: 以下的两种表达式是等价的: func(arg1 ...