带着疑问学习C++ Primer第三版PDF

博主分享了在阅读C++ Primer第三版过程中遇到的问题及其答案,涉及构造函数、成员初始化、左值与右值、引用与指针、内存管理、面向对象、虚拟调用机制等核心概念,并结合《深入理解计算机系统》进行学习,讨论了程序堆栈、字节对齐、缓存、TCP连接、存储器层次结构等计算机系统知识。

        看书提问题代表你在思考,而不是被动的接受,带着问题学习比死记硬背更有效,亲测有效!同时提出问题的质量代表着你思考的质量,如果你表达不清楚,说明没有思考清楚,多年的经验小结。不过不要担心,老铁,先从提问题开始吧

结合网易公开课《深入理解计算机系统:从程序员视角》CSAPP学习,网址,https://open.163.com/newview/movie/free?pid=PEV17ARPL&mid=KEV17ASN2

2021.7.17

1、既然在构造函数中可以对成员进行初始化,那成员初始化列表不是多余的吗?为什么这样做呢?

答:关键点是区分概念类成员初始化及赋值,具体见P587

2、什么是左值和右值,什么是从左值到右值的转换?引用类型的初始值该用左值还是右值?

3、写时复制技术?

4、static、const和volatile变量分别用在什么场景下,有什么好处?举例说明

5、引用类型和指针类型的区别,分别在什么场景下使用?

6、sizeof()是计算的啥,数组、指针、一般变量、对象分别计算出来的值是多少,举例说明

7、局部域中的变量为什么会隐藏域外的同名变量?

8、符号常量与inline函数有什么共同点?都可以放在头文件中定义?

9、既然C++类已经提供了隐式的按成员初始化(即可以通过一个类对象给另一个类对象初始化),为什么还要有显示的拷贝构造函数?P594

10、你对面向对象编程OOP的理解?

11、C++的虚拟调用机制是指的什么,为什么需要有这种机制?

2021.7.23

12、程序堆栈是在内存的哪部分,缓存区还是主内存区,还是寄存器中

13、字节对齐是什么,举例说明

与硬件内存寻址有关,参考https://yangwang.hk/?p=773

14、为什么要有缓存?缓存IO与非缓存IO区别在哪里?标准输入输出是行缓存?什么是系统调用,为什么比函数效率低?

2021.8.2

15、怎么理解用户态和内核态(用户空间和系统空间),【其实早在2014年就看过,当时都没有思考到这个概念,一带而过,可见学习需要去思考,去提问,这样才能有所进步,才能真正理解】,参考https://zhuanlan.zhihu.com/p/69554144;

16、存储器层次结构是怎么样的?volatile关键字是有什么作用?

17、TCP建立连接为什么需要3次握手?2次不行吗?为什么断开TCP连接需要4次挥手?3次不能断开吗?

参考https://blog.youkuaiyun.com/lengxiao1993/article/details/82771768?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522162804623716780269859073%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=162804623716780269859073&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduend~default-3-82771768.pc_search_download_positive&utm_term=tcp%E4%B8%BA%E4%BB%80%E4%B9%88%E9%9C%80%E8%A6%81%E4%B8%89%E6%AC%A1%E6%8F%A1%E6%89%8B&spm=1018.2226.3001.4187

18、new和malloc的区别;
19、-1在内存中的表示?计算机中负数为什么用补码表示?
20、数组与指针的区别;
21、虚函数的实现细节;
22、TCP连接主动关闭与被动关闭的区别;

23、静态成员函数有没有this指针,为什么?只能访问静态数据成员,为什么?见P629,操作符new和delete的重载

2021.8.17

24、为什么容器需要搞这么多迭代器,有什么好处吗?

作者:Stanley B.Lippman,Josee Lajoie/著 译者:潘爱民 张丽/译 出版社:中国电力出版社 图书分类: 程序设计 > C/C++ 销售榜 版别版次:2003年7月第5次印刷 ISBN书号:7-5083-0989-8 出版日期:2002年3月 开本:787*1092 1/16 字数:1621千字 页数: 1033 Stanley Lippman 他的职业是提供关于C++和面向对象的训练、咨询、设计和指导。他在成为一名独立咨询顾问之前,曾经是迪士尼动画公司的首席软件设计师。当他在AT&T B ell实验室的时候,领导了cfront 3.0版本和2.1版本的编译器开发组他也是Bjarne Stroustrup领导的Bell实验室Foundation项目的成员之一,负责C++程序设计环境中的对象模型部分。Stan是本书所有三个版本的作者,他还撰写了许多关于C++的文章。目前他已受雇于微软公司,负责Visual C++项目。 Josee Lajoie 是IBM加拿大实验室的C/C++编译器开发组的一名成员,也是ANSI/ISO C++标准委员会的核心语言工作组的主席。Josee是《C++ Report》杂志的专栏作家,目前正在滑铁卢大学的计算机图形实验室攻读硕士学位。 潘爱民 浙江海宁人,现任职于北京大学计算机科学技术研究所,副研究员,研究方向为网络与信息安全。自1994年至1999年,他一直从事计算机软件开发方面的工作。1998年到今,了利用业余时间著译了多部关于软件开发的著作,如《Visual C++技术内幕》(第四版),《COM原理与应用》、《COM本质论》、《深入解析ATL》等。1999年他还是《微电脑世界》杂志社的合作专家,撰写了大量深入权威的技术文章。1991年他在南开大学数学系获学士学位,1994年在清华大学自动化系获硕士学位。 内容简介   作为目前业界广泛使用的编程语言,C++可谓包罗万象、博大精深。20年来,讲述C++的图书早已经汗牛充栋、层出不穷,但其中业界公认的完整涵盖C++标准的权威著作只有两部,其中一部就是本书!它是业界内久负盛名、无可替代的C++经典著作,它的原版销量超过450000册,它教授最新的编程理念与实践,它是所有C++程序员不可或缺的参考书!   本书是久负盛名的C++经典教程,其内容是C++大师Stanley B. Lippman丰富的实践经验和C++标准委员会原负责人Josée Lajoie对C++标准深入理解的完美结合,已经帮助全球无数程序员学会了C++。本版对前一版进行了彻底的修订,内容经过了重新组织,更加入了C++先驱Barbara E.Moo在C++教学方面的真知灼见。既显著改善了可读性,又充分体现了C++语言的最新进展和当前的业界最佳实践。书中不但新增大量教学辅助内容,用于强调重要的知识点,提醒常见的错误,推荐优秀的编程实践,给出使用提示,还包含大量来自实战的示例和习题。   对C++基本概念和技术全面而且权威的阐述,对现代C++编程风格的强调,使本书成为C++初学者的最佳指南;对于中高级程序员,本书也是不可或缺的参考书。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值