《C++ Primer》学习总结;兼论如何使用'书'这种帮助性资料
6.25~ 6.27,用了3天翻了一遍《C++ Primer》.
▶书的 固有坏处
一句话: 代码比 文字描述 好看多了。————> 直接看习题部分/ 看demo就行了
看文字在描述这个情景,还要自己脑子里想象出来这段话在说什么。经常不知道其中哪句话是个啥意思。而且看着看着就走神了。
——> 除非是对存疑的代码进行解说,否则用文字来导入场景,书看起来真的很没意思。
▇▇ 《cpp Primer》这个文字描述 看着让人犯困! 还是找找啥一章总结/读书笔记 性质的先来看看吧!
===========================================================================
▶辨别一份好的教材/教程
一本好的书,应当有 各章小结、并配有习题。
▶区分不同性质的内容
书中讲的那些东西可以细分为几种性质的内容:
首先,可以看做一个个独立的主题。比如shared_ptr这一块、构造函数这一块……
一个是导入性质的,讲给小白这是什么。给个示例、然后讲是什么,引入一些概念。
二个是讲使用时最常遇到的场景、需要注意的问题。这种比较有价值。
三个是进阶版本了,内容也是选取性的,讲一些更复杂的场景/ 更隐蔽的理解。
《cpp Primer》集中在一、二这两种内容。
===========================================================================
▶使用资料前,自己必须先准备好的工作
内容框架、疑问点
===========================================================================
▶▶▶:使用‘书’的正确姿势:【去寻求项目中产生的疑问的答案 】 式用书
(1) 自己是想了解那部分内容?具体的疑问列举一些?
(2) 先看‘本章小结’ 这种性质的东西,对问题框架必须先清楚。
(3) 少看描述情景的文字,太累。直接看demo+当成解说, 或练习的话:直接去做习题
▶《Cpp Primer》
【1~6章:小白Startup】
变量和基本类型,string/vector/array, 表达式、语句、函数
【IO库 、STL】
8章讲IO库;
9,10,11章讲STL: (顺序/管理容器+Iterator、算法)
【类 + 动态内存 + 模板】
第7章讲了类,13章拷贝控制,14章运算符重载与类型转换,
16章讲模板;
12章讲动态内存,直接讲智能指针而非raw pointer.
【OO设计】
15章导入OO设计(基类-派生类);
18章讲Exception机制、namespace包机制、多重继承/虚继承(Interface)
【其他】
17章讲标准库中的一些冷门设施,19章讲一些黑技巧。
=================================================================================
常用容器的常用操作(使用Iterator)
容器上的常用算法
static_cast, const_cast,
lambda
shared_ptr, unique_ptr, weak_ptr, auto_ptr
动态数组、allocator
move语义
模板类、模板函数
“函数对象”(function object)
============================================================
使用:
①对象实例全部用shared_ptr放heap上
+②virtual继承
+③参数/返回值按引用传递
可完全实现Java的语义效果。
----------------------------------------------------
临时对象:
这行中产生这个对象,这行代码结束就析构这个对象(可能已被拷贝过)
----------------------------------------------------
引用变量:instance别名
对象别名(变量名)的作用域|生存周期就是 当前函数范围内,它又不能传进来/传出去,所以不用担心它。只关注指针就好了
----------------------------------------------------
参数为引用-其语义:
这个对象是调用方提供的,本就存在;
这个函数只是使用它;
这个函数不改变其生命周期(?一般情况下)
----------------------------------------------------
动态内存:
本来所有对象的生存周期都在其产生的方法栈上,方法调用结束这对象就没了(除非通过返回 拷贝出去)
现在放在公共的heap堆上,就可以让对象的生命周期跨越函数栈,为程序各处共享。
----------------------------------------------------
shared_ptr: 就是raw pointer的Wrapper。
指向同一个instance的shared_ptr都关联着同一个“instance的计数器”——记录有几个指针指向该instance
===========================================================
VS2015现在发现2个小问题:
1. vector<int> v{1,2,3}; 提示不能列表初始化。而这个语法肯定是对的(打开答案代码时不报错)
2. 该编译时就报错的地方不报错,build时才发现这是明显的语法错误。
比如 cbegin,end等无参成员函数,调用时不写括号竟然不报错!Build时才说!
3. const T& 参数 我在函数体内修改了竟然没报错
==========================================================
几个还会时不时糊涂的地方:
const语义和Non-const语义的适配;
默认提供的类的 构造/ 拷贝/赋值/析构 的语义是什么样的,什么时候不能用,怎样重写
《C++ Primer》学习总结;兼论如何使用'书'这种帮助性资料的更多相关文章
- Go:学习笔记兼吐槽(3)
Go:学习笔记兼吐槽(1) Go:学习笔记兼吐槽(2) Go:学习笔记兼吐槽(3) 数组 Golang 中,数组是值类型. 数组的声明 var arr [10]int 数组的初始化 var arr1 ...
- Go:学习笔记兼吐槽(2)
Go:学习笔记兼吐槽(1) Go:学习笔记兼吐槽(2) Go:学习笔记兼吐槽(3) 基本数据类型和string之间的转换 (1) 基本类型转string 使用 fmt.Sprintf(“%参数”, 表 ...
- Go:学习笔记兼吐槽(1)
Go:学习笔记兼吐槽(1) Go:学习笔记兼吐槽(2) Go:学习笔记兼吐槽(3) 自动添加分号 在很多其他的编程语言中,每一行代码的结尾都必须有分号(假设一行中只有一句代码),Golang 的开 ...
- C++ Primer学习笔记(三) C++中函数是一种类型!!!
C++中函数是一种类型!C++中函数是一种类型!C++中函数是一种类型! 函数名就是变量!函数名就是变量!函数名就是变量! (---20160618最新消息,函数名不是变量名...囧) (---201 ...
- C++ Primer学习笔记(二)
题外话:一工作起来就没有大段的时间学习了,如何充分利用碎片时间是个好问题. 接 C++ Primer学习笔记(一) 27.与 vector 类型相比,数组的显著缺陷在于:数组的长度是固定的,无法 ...
- Directx11学习笔记【八】 龙书D3DApp的实现
原文:Directx11学习笔记[八] 龙书D3DApp的实现 directx11龙书中的初始化程序D3DApp跟我们上次写的初始化程序大体一致,只是包含了计时器的内容,而且使用了深度模板缓冲. D3 ...
- 转载:看c++ primer 学习心得
学习C++ Primer时遇到的问题及解释 chenm91 感觉: l 啰嗦有时会掩盖主题:这本书确实有些啰嗦,比如在讲函数重载的时候,讲了太长一大段(有两节是打了*号的,看还是不看 ...
- C++ Primer学习笔记(一)
始终对C++念念不忘,看过 一个32岁入门的70后程序员给我的启示 之后,心情激荡,更是一发不可收拾. 认真地说,我不是一个执着的人,见异思迁,好读书而不求甚解,兼之情绪化(~~ 某些方面),于是怒 ...
- C++ primer学习记录(个人猜想未测试版本)
学习版本:第五版. 本博文主要记录个人曾经并不知晓知识细节. 因为linux下的编译环境还未进行学习.所以实际代码测试将在今后完成. 红色:需确认. 蓝色:重点. 1)const对象设定为仅在文件内有 ...
随机推荐
- 使用PSCI机制的SMP启动分析
其他core的入口 文件:arch/arm64/kernel/head.S secondary_entry: 在从bl31切到EL1上的Linux Kernel后: 第595行,在el2_setup中 ...
- 不要让事实妨碍好故事:Facebook精准广告产品与硅谷创业揭秘,4星奇书《混乱的猴子》
“ 现在,和往常一样,一些有先见之明的学者看到了这一天会再次到来,他们把这次全新的媒体中世纪化过程命名为“第二次口口相传”(Secondary Orality)和“古登堡右括号”(the Gu ...
- 小样本学习(few-shot learning)在文本分类中的应用
1,概述 目前有效的文本分类方法都是建立在具有大量的标签数据下的有监督学习,例如常见的textcnn,textrnn等,但是在很多场景下的文本分类是无法提供这么多训练数据的,比如对话场景下的意图识别, ...
- discuz x3.2简化的搜索框代码
这是在做一个模板时改的,并不代表这是一个美化或者优化,只是特殊情况下的需要.只有一个搜索框,默认帖子搜索,无搜索按钮,输入内容直接回车搜索. <!--{if $_G['setting']['se ...
- 小学四则运算口算练习app
目标: 第一次尝试做APP,这次做的东西不是很麻烦,做出一个口算练习的加减乘除的页面,使用者做题,设有答案页,进行核对! 核心部分是出题页面的程序,还有答案页的程序.不设置登录注册页面.冲刺时间:一周 ...
- Super Fish
Super fish is a common fun and leisure game. It's a game that tests your intelligence and memory ...
- ABP 网站发布
报错1:HTTP Error 503. The service is unavailable. 解决:IIS->应用程序池->高级设置->进程模型->标识.将内置账户更改为Ne ...
- p1842 奶牛玩杂技 题解
感觉其他dalao讲的不是很明白啊,我这样的蒟蒻看不懂啊. 在luogu这个dalao遍地的地方我蒟蒻看个题解也不明白,我为跟我同病相怜的蒟蒻写一篇吧 其实真是不太明白,大部分题解都是只说 体重大的在 ...
- jedis代码操作
一.jedis快速入门 * Jedis: 一款java操作redis数据库的工具. * 使用步骤: 1. 下载jedis的jar包 2. 使用 //1. 获取连接 Jedis jedis = new ...
- SpringBoot之邮件服务
springboot 邮件服务 今天在看网上学习微服务的时候顺遍看到了一些关于springboot的文章,写的springboot拓展功能就顺遍学习了一下,接下来给大家分享一下springboot封装 ...