primer看完了
放假这将近十天吧,终于把C++ Primer中文版第五版大致看完了,然而第四部分(高级主题)还是没有看,感觉那是需要有足够的项目经验再看。
另外,看一遍肯定不够,忘得也会很快,我十分确认今后还会很多次翻出这本 “圣经” 来翻阅。
这十天看的东西有:IO标准库设施,顺序容器,泛型算法,关联容器,智能指针与内存管理,拷贝控制,运算符重载,OO,模板。
应该说直接的体会就是,C++真的是一门无比庞大的语言,无处不在充实着各种各样的细节,各种各样的规则,甚至各种各样的规则也有很多的例外情况。
看完这些内容之后,我自我感觉对C++的认识深刻了不少,更认识到了语法语义的丰富性,学到了很多C++11的新特性:增加的顺序容器和关联容器、五种迭代器、
Lambda表达式、智能指针、右值引用、移动语义、继承的构造函数、完美转发等等,甚至很多以前不太懂的东西现在都清楚了。
但是还是有很多地方理解不深刻,例如,类型转换,静态动态绑定,虚函数机制,继承的深刻理解,模板的灵活使用,而且,最关键的就是我的项目经验太少,
可以说看书必须经过做项目才能理解更深刻,也会更熟练。
其中一个想的更清楚的关于合成默认构造函数的问题,正如《Inside the C++ Object Model》中所言,只有当需要的时候,编译器才会为类添加默认构造函数。
(机智的编译器。。)
上书中所说的四种外加类内初始化共五种情况吧,只有这五种情况编译器会添加默认构造函数(前提:没有显式定义构造函数)。
所谓添加默认构造函数,其实就是存在函数的调用过程,在这个过程中编译器完成一系列工作。
至于没有添加合成默认构造函数的类,依旧可以程序中这样写:MyClass *obj = new MyClass(),但是这其中并不会有默认构造函数的调用。编译器在观察这个类的结构之后,
发现不属于上述五种情况,于是不存在函数调用过程,因为没必要! 编译器速度快才是目标,怎么会有这种多余的函数调用过程!
另外,学习C++就是学习C++,不要把它和别的语言混在一起(Java/C#)。
今后一段日子内学习C++的规划如下:

C++学习之路任重而道远,加油加油!
primer看完了的更多相关文章
- <c ss高效开发实战>看完了,Bootstrap学习是关键
Bootstrap果真给我们带来了很多便利,学习CSS,必须要掌握很多框架和快速学习的方法. 这本书看完了,也写过几篇读书笔记,墙裂推荐.不上书封面了,只上书的导图. 这里说几点学习CSS的心得 1. ...
- 终于把你必须知道的.NET看完了
终于把你必须知道的.NET看完了,第二步就是把精通ASP.NET MVC3框架这本书搞定,练习MVC3的使用,并把EF,LINQ也练习一下,期间要做一个项目“多用户微信公众平台”项目,最近微信公众平台 ...
- C#本质论第四版-1,抄书才能看下去,不然两三眼就看完了,一摞书都成了摆设。抄下了记忆更深刻
C#本质论第四版-1,抄书才能看下去,不然两三眼就看完了,一摞书都成了摆设.抄下了记忆更深刻 本书面向的读者 写作本书时,我面临的一个挑战是如何持续吸引高级开发人员眼球的同时,不因使用assembly ...
- 跌跌撞撞的看完了《jquery技术内幕》
今年2月20日买的书,今天是5月26,三个月来,除了周末休息一天,如果没有特殊情况,我都会每晚花两个小时看这本书,以及查各种与jquery源码相关的资料.今天总算是跌跌撞撞的看完了,有点小激动,也有点 ...
- 刚看完了一本关于javascript的书感觉受益匪浅,原来不懂的东西这么多,想问问怎么成为大神?求教!!!!!!
刚看完了一本关于javascript的书感觉受益匪浅,原来不懂的东西这么多,想问问怎么成为大神?求教!!!!!!
- mass种子模块看完了
作者当然也不容易,要考虑各种兼容问题,要考虑效率问题(他真的考虑过吗,我表示强烈怀疑,貌似仅仅是风格上模仿其他源码) 相当无语. 本来我是知道的,代码 调试的过程中逐渐完善,逐渐与各种兼容问题和预想不 ...
- Unicode(UTF-8, UTF-16)令人混淆的概念----我看完了 不错
来自:http://www.cnblogs.com/kingcat/archive/2012/10/16/2726334.html ---------------------------------- ...
- Ansi,UTF8,Unicode,ASCII编码的区别 ---我看完了 明白了很多
来自:http://blog.csdn.net/xiongxiao/article/details/3741731 ------------------------------------------ ...
- Python关于函数作为返回值的理解(3分钟就看完了)
话不多说,直接看例子,上代码: def line_conf(): def line(x): return 2 * x + 1 return line #return a function object ...
随机推荐
- Linux系统格式化命令mke2fs命令简析
1.mke2fs配置文件: # vim /etc/mke2fs.conf [defaults] base_features = sparse_super,filetype,resize_inode,d ...
- k8s测试容器之间是否互通
[root@lab2 .kube]# kubectl get pod -o wide NAME READY STATUS RESTARTS AGE IP NODE curl-87b54756-rbqz ...
- 【转】Java从hdfs上读取文件中的某一行
[From]https://blog.csdn.net/u010989078/article/details/51790166 package test; import java.io.Buffere ...
- PTA --- 天梯赛 L1-059 敲笨钟
L1-059 敲笨钟 (20 point(s)) 微博上有个自称“大笨钟V”的家伙,每天敲钟催促码农们爱惜身体早点睡觉.为了增加敲钟的趣味性,还会糟改几句古诗词.其糟改的方法为:去网上搜寻压“ong” ...
- Python爬虫学习==>第一章:Python3+Pip环境配置
前置操作 软件名:anaconda 版本:Anaconda3-5.0.1-Windows-x86_64清华镜像 下载链接:https://mirrors.tuna.tsinghua.edu.cn/ ...
- MySQL 查看约束,添加约束,删除约束 添加列,修改列,删除列
查看表的字段信息:desc 表名; 查看表的所有信息:show create table 表名; 添加主键约束:alter table 表名 add constraint 主键 (形如:PK_表名) ...
- BeanFactory 和FactoryBean的区别
转自:https://www.cnblogs.com/aspirant/p/9082858.html BeanFacotry是spring中比较原始的Factory.如XMLBeanFactory就是 ...
- CRLF、CR、LF详解
名词解释 CR:Carriage Return,对应ASCII中转义字符\r,表示回车 LF:Linefeed,对应ASCII中转义字符\n,表示换行 CRLF:Carriage Return &am ...
- 应用安全 - 编程语言 | 框架 - PHP - Djiango - 漏洞 -汇总
CVE-2007-0404 Date , 类型Filename validation issue in translation framework. Full description 影响范围 CVE ...
- Object的构造函数方法
参考自MDN Object 构造函数的方法 1.Object.assign() 将可枚举属性的值从一个或多个源对象复制到目标对象. 2.Object.create() 创建一个新对象,继承现有对象的构 ...