homework-07 C++ 11 能好怎
大二时候学过c++,但是那只是为了考试在学习,大作业也就写了一个读写者线程同步的模拟,连一个完整的类都没有写过,所以我必须承认对c++了解的很少。
对于C++ 11这一新标准,我首先阅读了来自前C++标准委员会的 Danny Kalev 的 The 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 中值得关注的几大变化(详解)
我找到了一些答案
比如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 能好怎的更多相关文章
- 日本IT行业劳动力缺口达22万 在日中国留学生迎来就业好时机 2017/07/18 11:25:09
作者:倪亚敏 来源:日本新华侨报 发布时间:2017/07/18 11:25:09 据日本政府提供的数据,日本2018年应届毕业生的“求人倍率”已经达到了1.78倍.换言之,就是100名大学生 ...
- homework 08_2 C++11新特性作业之二
---恢复内容开始--- 1.使用Lambda表达式计算“hello world!”中字母e和i的数量 下面是代码: #include "stdafx.h" #include< ...
- 30天,APP创业从0到1【7.11郑州站】
活动概况 时间:2015年07月11日13:30-16:30 地点:慧谷咖啡(郑州杨金路9号河南外包产业园天元W栋) 主办:APICloud.环信.河南中医药大学医药信息化实验室 网址:www.api ...
- 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/ ...
- 第11章 认识和学习bash
认识bash这个shell 硬件.内核和shell 用户操作计算机流程如下: 用户——>用户界面(shell,KDE,application)——>核心(kernel)——>硬件(h ...
- 11.7 iostat: I/O信息统计
iostat是I/O statistics(输入/输出统计)的缩写,其主要功能是对系统的磁盘I/O操作进行监视.它的输出主要是显示磁盘读写操作的统计信息,同时也会给出CPU的使用情况.同vmstat命 ...
- Final阶段第1周/共1周 Scrum立会报告+燃尽图 04
作业要求[https://edu.cnblogs.com/campus/nenu/2018fall/homework/2483] 版本控制:https://git.coding.net/liuyy08 ...
- 福大软工1816 · 评分结果 · Alpha冲刺答辩总结
作业地址:https://edu.cnblogs.com/campus/fzu/Grade2016SE/homework/2462 作业提交准则 按时交 - 有分 晚交 - 0分 迟交一周以上 - 倒 ...
- 简简单单学会C#位运算
一.理解位运算 要学会位运算,首先要清楚什么是位运算?程序中的所有内容在计算机内存中都是以二进制的形式储存的(即:0或1),位运算就是直接对在内存中的二进制数的每位进行运算操作 二.理解数字进制 上面 ...
- 【RDA】使用RDA(Remote Diagnostic Agent)工具对数据库进行健康检查
[RDA]使用RDA(Remote Diagnostic Agent)工具对数据库进行健康检查 分类: Linux RDA英文全称叫做"Oracle Remote Diagnostic Ag ...
随机推荐
- MFC六大核心机制之一:MFC程序的初始化
很多做软件开发的人都有一种对事情刨根问底的精神,例如我们一直在用的MFC,很方便,不用学太多原理性的知识就可以做出各种窗口程序,但喜欢钻研的朋友肯定想知道,到底微软帮我们做了些什么,让我们在它的框架下 ...
- AX函数,将EXCEL列号转为列名
str GetExcelColName( int i_col) { int j; str ret; int v_div,v_mod; str tmp1,tmp2; int i_col_ascii; ; ...
- php xml 互相转换
正好昨天才做过类似的需求……几行代码就可以搞定. 如果你使用 curl 获取的 xml data$xml = simplexml_load_string($data);$data['tk'] = js ...
- Semantic UI 使用回调函数
html代码: <div class="ui dropdown item" id="region"> <div class="tex ...
- 设计模式-适配器模式(Adapter)
简介: 适配器模式在我看来是最无聊的一种模式,因为他根本不是一种新的创意模式,而是一种不得已而为之的模式.就算不学适配器模式,在具体应用场景中也会自然而然的想到这种解决方案. 张三在英国留学时买了个笔 ...
- Windows Phone 开发起步之旅之一 平台环境的搭建
最近大家都在写博客园的技术文章,按耐不住了,也把自己平时学习中遇到和学习到的一些东西写出来,供大家分享也好,自己留个纪念也好,有个可以查看的东西. 言归正传,随着微软对Windows Phone的投入 ...
- 安装 android sdk 不能更新问题
1 要更改host 文件 2在Android SDK Manager的Tool->Option中按照如下修改
- 举例详解CSS中的的优先级
计算优先级 优先级是根据由每种选择器类型构成的级联字串计算而成的.他是一个对应匹配表达式的权重. 如果优先级相同,靠后的 CSS 会应用到元素上. 注意:元素在文档树中的位置是不会影响优先级的优先级顺 ...
- WinForm界面布局控件WeifenLuo.WinFormsUI.Docking"的使用 (二)
WinForm界面布局控件WeifenLuo.WinFormsUI.Docking"的使用 (二) 编写人:CC阿爸 2015-1-29 今天我想与大家继续一起分享这一伟大的控件.有兴趣的同 ...
- js根据日期获得星期
var weekday = getWeekday('2013-9-26'); function getWeekday(sDate){ var dt = new Date(sDate.replace(/ ...