作者tinlans ( )
看板Soft_Job
标题Re: [请益] C++观念参考书选择
时间Wed Jun 27 04:42:59 2018
※ 引述《powenyu (powen0706)》之铭言:
: 小弟不才 打算在暑假选一本C++的书来啃
: 我本身有稍微碰过C,但是观念非常不扎实,像是指标、阵列、递回之类的
: 我目前是计画把zerojudge的题目A在暑假做完,但是还是希望能配着书来读
我花了十分钟用 Google 爬完你发过的文。
大致上可以知道去年已经是大一,原本是读高中,然後考台科读。
其它私事就先不提,总之光从 IP 看你都是用台科无线网路,所以查不到科系。
但根据读完大一以後只是「稍微碰过 C」和「指标、阵列、递回观念不紮实」,
研判应该不是电资类的科系,不然应该至少已经被资料结构这门课操过了。
因为没什麽力气再去翻台科的电资科系的课表,姑且就先当你是个非相关科系学生。
如果你是非相关科系的学生,在学 C++ 之前,你得先搞清楚你为什麽要学 C++。
你未来想从事什麽方面的研究要用到 C++?你未来想从事什麽样的工作会用到 C++?
你现在是大学生,不再是高中生,很快就要出社会工作,要尽量确立目标再决定学什麽。
先确立你的目标再来决定要学什麽东西,不要觉得自己时间还有很多,剩下三年很快的。
你把你的目标和动机还有自己背景都好好讲出来,我再认真回技术方面的东西。
: 因为我以前的学习方式是拿到题目就写,不会就问同学,或是去网路上看大神的程式码
: 再依题目自己修改,可是常常就会忽略这个用法的观念,招致错误的用法或没效率的
: 用法
先讲这些的原因是因为看到你还是以解题为目标,进行着很国中化、高中化的学习方式。
你没有一个想要制作的作品,而且也没尝试过从无到有写出一支程式,都是透过模仿。
问同学固然跟上网查一样可以快速得到答案,但是你的知识就是片片段段无系统性。
把网路切掉,只给你 C 语言教科书和函式库工具书,你能不能写出个什麽来?
是不是没有人问,没有办法透过网路或一堆范例的书抄程式码来改,你就什麽都做不到?
你先设法逼自己只有 C 语言教科书和函式库工具书就能写出程式,之後再来谈其它。
C++ 对现在的你来说还是太庞大了,特别是现在这种学习方式,根本没办法把 C++ 学好。
: 想问大神们对这种状况有什麽推荐的书籍吗,像有一本:插画学C语言 我觉得图解对我的
: 观念有很大的帮助,但是我觉得他讲太少了,例题不够内文不连贯,蛮可惜的,但是如
: 果有类似的书,欢迎大家推荐。
会找到适合自己的书是好的开始。
学程式的前几本书我从来都不建议叫人推荐,毕竟每个人适合的入门学习法不同。
你先多找到几本可以厘清你观念的书,自学到入了门了,再找人推荐经典书籍才有意义。
你得天独厚人在台北,自己去重庆南路逛一下天珑书局,现场去挑适合你自学的书。
很多县市的学生没有这种环境,只能网路上没看过就买,搞到选书跟抽签一样碰运气。
图书馆也是一个可以利用的地方,但这很看学校及馆藏,去专业电脑书店选书绝对没错。
你也不一定要去选 C 或 C++ 的书,有兴趣的题材跟程式语言你都能翻来看看有无兴趣。
会一直跟你强调这个是因为 C/C++ 在泛软体业里不是大宗,很多公司并不使用 C/C++。
如果你是电资类的本科系学生,因为常需要写中低阶程式,学 C/C++ 我就会觉得还好。
但即使是这类学生跑来问,我一样还是会先问你将来想干嘛。
如果你不想思考或回答我这些问题,你可以直接杀去 C_and_CPP 板再发问一次。
既然你发在 Soft_Job 这种社会人士板,那我会先以入社会後想干嘛为考量来回文。
当然不管你是什麽科系,未来想干嘛,想透过 C/C++ 来学程式,有些东西可以在这先讲。
首先,你需要的书只有两种。
一种是打稳基础观念的 C 语言教科书。
另一种就是罗列 C 语言标准函式库所有函式及简易使用范例的工具书。
你需要的书就只有这两种,其它速成类、纯范例类的书,你可以全部跳过。
靠着这两种书写出你想写的东西,解你想解的题目,不要上网查或问人。
如果做不到,那代表你的个性根本就不适合以写程式为业,当日常生活工具玩玩就好。
只是要把程式当日常生活工具玩玩就好,你有更好的选择,C/C++ 绝对不是首选。
你去学个按键精灵的命令稿语言搞不好在把妹上还比较有利,我是很认真在说。
当你用这些方法去土炮实作东西和解题时遇到方法或效能上的障碍,那才需要读其它书。
所谓其它书,就是资工本科系的两大必修课,资料结构和演算法。
如果你对背後的数学原理有兴趣,想要自己设计演算法,还需要读一下离散数学。
但是这几种书对现在的你来说都还太早,你连程式语言的基础都还没系统化学习过。
说真的如果你是好好读书从基础学起,我不清楚阵列跟指标到底有什麽难懂。
阵列名称跟指标名称都是识别字 (identifier),使用前需要先宣告 (declare)。
这些识别字在被定义 (define) 後会在记忆体被配置一块空间,里面可以存资料。
当这些识别字被拿来当变数 (variable) 使用时,同时也会是运算元 (operand)。
而针对运算元进行操作的符号称为运算子 (operator),功能当然就是拿运算元来运算。
由运算元和运算子构成运算式 (expression),譬如 a + b 这样的东西。
由一条运算式再加上分号做结尾,就构成一条简单叙述 (simple statement)。
而使用大括号把好几条叙述包起来的就叫复合叙述 (compound statement)。
叙述 (statement) 在 C/C++ 是真正的基本单位,整个程式由各种叙述完成。
一般人讲的什麽 if 语法、switch 语法等等,真正的名称是叫 if 叙述、switch 叙述。
讲这些干嘛?因为程式语言也是语言,只是限制比较多,学起来比自然语言简单而已。
你学英文一样要学文法,要知道如名词、动词、形容词、副词等各种词性。
运算式在英文的文法里如同子句 (clause) 或片语 (phrase),
而叙述在英文的当中就是更浅显易懂的东西,称为句子 (sentence)。
就如同文章是由段落组成,段落是由句子组成一样,
你的整个程式也是由一段一段的叙述所组合出来的。
当然就像一本着作甚至还会区分章节一样,程式其实也有编译单元、模组等概念。
不过这种东西对你现阶段来说还太早,因为你写程式的主要方法还是拿现成的来改。
你要先学的东西,就只是怎麽在一张完全空白的白纸上写出无语法错误的一支支小程式。
阵列名称说穿了丢到程式上就是个运算元及变数,然後它有特殊的运算子可以对它操作,
也就是下标运算子 (subscript operator),就是中括号 [] 这种东西。
指标名称说穿了丢到程式上还是个运算元和变数,它也有个特殊的运算子可以对它操作,
称为提领运算子 (dereference operator),也就是星号 * 这种东西。
这东西你只要稍微了解一下是在干嘛,就算看到 N 个提领运算子在一起,也不会怕它。
N 个提领运算子在一起就是做 N 次提领而已,也没什麽,本质都是不变的。
除此之外,运算子作用在不同型别的运算元上也有不同意义,
譬如你对一个指标型别的运算元做 + 1,实际上运算结果常常不是只是多了 1 而已。
你必须先搞清楚不同型别 (type) 的运算元有哪些运算子可以用,它们的作用是什麽。
什麽叫型别?阵列和指标本身就是一种型别,当然你常看到的 int、float 等等也是。
型别影响到编译器怎麽去看待运算子跟运算元,转译出来的机械指令也有差别。
两个 double 变数相加,编译器转译出来的是浮点运算指令,
因此这种加法的两个运算元里的位元排列方式,CPU 会以浮点数特有的格式来做解读。
两个 int 变数相加,编译器转译出来的是整数运算指令,
因此这种加法的两个运算元里的位元排列方式,CPU 会以整数格式来做解读。
当运算子两边的运算元型别不同时,编译器还得先暗中把它们转成同型别再决定指令。
其它东西要一口气在这讲完就太多了,多到可以写一本来卖,就留给你自己看吧。
递回是一种程式结构,它的原理就是数学,但是这边可以先不管。
在程式上递回就是一种叫电脑暴力反覆做一样的事,直到你设定的条件发生为止的东西。
所以递回的构成元素就只有两项:1. 继续往下用力算的执行部分 2. 终止条件
所以你想要写一个把传入的变数不断递减到 0 的递回函式的话,首先就要放终止条件。
就像我一开始问你想学 C++ 是什麽目的,你有什麽目标?
程式总是为某个目的而写的,所以你一开始要决定的就是目标。
void decrease_until_zero(unsigned v)
{
if(v == 0) return; /* 终止条件是让 v 变成 0 */
}
然後达到目的的过程是「不断递减」,所以你得加上一行递减的动作:
void decrease_until_zero(unsigned v)
{
if(v == 0) return;
v--; /* v 还没变成 0 的话,就做这件事 */
}
如果你想观察每次呼叫过程中的变化,可以补上一行 printf():
void decrease_until_zero(unsigned v)
{
if(v == 0) return;
printf("%u\n", v);
v--;
}
再来就是你希望这段程式可以不断反覆跑到你想要的结果出来为止,
那就是让这个会让传入参数不断减一的函式不断反覆跑,也就是呼叫自己:
void decrease_until_zero(unsigned v)
{
if(v == 0) return;
printf("%u\n", v);
v--;
decrease_until_zero(v); /* 无论如何,就是要一直做到停下来为止 */
}
这个函式里的构成物就只有刚刚讲的两种:终止条件、不满足终止条件时要做的事。
递回讲白话点就是设定好目标,然後让程式不断反覆做一样的事,直到目标达成为止。
其它各种形式的递回都是基於这个原理再做一些小变化而已,根本没有什麽难懂的。
只要你能理解递回的本质是这种东西,之後看到递回或要写递回时就完全不会怕了。
递回在「不知道要做多久」、「不知道有多少东西要做」的情况来讲很好用,
因此它也深受数学家的喜爱,写了就是「管你有多少东西要做多久,做就对了」的意思。
也因为这样,最初数学家所写的程式常常要跑很久很久,电脑科学才被发展起来。
这些东西因为不管你学哪个语言都会用到,所以我就先讲一讲。
当然万一你真的很不幸是电资类科系的,那你还有更基础的一些东西得同时学习。
最基本的要求是你要会分别单独操作前置处理器、编译器、组译器和连结器,
还有搞懂编译出来的执行档结构,以及它被载入到记忆体执行後的布局是长怎样。
这些东西对科班生来说是基本要求,因为要知道自己写的每一行程式码在电脑里怎麽跑。
而对於一般写应用软体的人来说,讲究的是抽象化概念,不需要知道太具体的东西。
对於也会写程式的资讯管理系和应用数学系来说,他们关心的都是更高阶更抽象的东西,
所以教他们变数可以说那是个盒子,说记忆体位址的时候可以说是什麽门牌地址。
但是对於电资类科系来说,这些说法都是非常要不得的不精确说法,没在那边箱子门牌。
也因此两边从一年级的计算机概论教学方式就有差距,
电资类科系教的是计算机科学导论,和那些教教进制转换及 Office 的计概天差地别。
搭配着同时开始的 C 程式设计一起,这门课会同时导览资工四年所会修习到的核心科目。
其中电脑架构的计算机结构概论,对於指标及记忆体布局的认知有极大帮助。
其中的程式语言概论,也会告诉你程式是被怎麽被编译器解析,以及文法表的阅读方式。
其中的作业系统概论,除了字面上的意义会讲的一些东西之外,
还能让你在大一就提前体验一下多处理程序程式甚至多执行绪程式的设计方式。
总而言之,这两种人的训练方式是完全不同的,从一开始学习的方向就不一样。
也因此你会看到网路上有人把指标讲得超级难,有人却能轻松自在地把玩它。
其实那些根本都不是天分的问题,而是基础训练方式的差异,所以在难度认知上有差异。
你到底想要成为哪种人,目标是什麽,还是得先说清楚,不然会很难回出一个方向。
--
Ling-hua Tseng
Senior Engineer
Compiler Group, RD/Software Division
Andes Technology Corporation
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 122.116.164.123
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Soft_Job/M.1530045810.A.BE1.html
※ 编辑: tinlans (122.116.164.123), 06/27/2018 05:21:09
1F:推 beaprayguy: 你真的太佛系了 06/27 06:27
2F:推 s29940: 感谢高人指点,推 06/27 06:30
3F:→ beaprayguy: 专业领域方面,这gap真的不是1 2年认真可以跨过。 06/27 06:30
4F:→ beaprayguy: 我非本科很能认同目的导向。在达成目的持续学习 06/27 06:31
5F:→ beaprayguy: 并用有效率的学习。才是最重要 06/27 06:31
6F:→ beaprayguy: 非本科会经过很多垃圾路。 06/27 06:32
7F:推 dannypsnl: 推 06/27 06:56
8F:推 jack85408540: 推 06/27 08:03
9F:推 HAKUKE: 好文推 06/27 08:22
10F:→ vi000246: 超认真文 06/27 08:28
11F:推 tkhan: 太强.. 06/27 08:29
12F:推 cphe: 好文推 06/27 08:37
13F:→ loveflames: 如果学C++是目的取向,非本科的还是不要学比较好 06/27 08:55
14F:→ loveflames: 一来是学习困难,二来是C++的工作难找 06/27 08:55
15F:推 chupiggy: 好心人 06/27 09:07
16F:推 final01: c++工作不难找,如果敢在履历上写过精通c++有非常多工作 06/27 09:07
17F:→ final01: 可选吧!XD 06/27 09:07
18F:推 shvanta: 超棒的观念诠释 06/27 09:21
19F:推 angel00540: 话说台科电资上完确实C只有基础 所以可能是本科系的 06/27 09:28
20F:→ angel00540: 好像只有资工有演算跟资料结构 06/27 09:28
C++ 从最早发展到稍微稳定有点样子的时候是 1990 年,标准化是 1998 年末。
2018 - 1998 = 20,换句话说教 C++ 的最少要在 20 年前有好好学习过 C++。
更不用说在 2011 年底 C++ 还有一次大改,也就是说教的人在 7 年前还得更新知识。
在学校做研究的教授都在冲论文数,而且从岁数反推就会知道他们根本没机会学好。
没学好的东西又怎麽可能拿出来教,所以当然是只能当成 C 语言来教。
加上科大的资工系历史很短,初期很多是电机、电子这边的教授跑过来开资工系。
要他们写教你程式,不如要他们教你怎麽读那本史密斯还比较有用。
其次就是应数、资管、网通所等等过来开的,这些专长都是偏应用的部分。
所以教授的专长要嘛不是很数学、很微积分,就是很硬体,要不就是很应用。
能完整传授资工核心科目的教授在科大一直都有限,很多靠自学还是比较快。
这和早期一堆学校开设资管系,却没有资讯背景师资,
只是因为资管系变得很热门,所以几乎只有纯管背景的教授就硬开出资管系很相似。
更何况学术界不会太重视工具的使用,普大科大其实都很缺会教 C++ 的教授。
以前学术界是有讲师这种注重教学的教育者存在的。
但是不知道什麽时候开始,可能跟四技二专升格科大而想跟他们区别化有关,
学校 0 讲师、所有师资都有博士学位这点居然可以拿来当成学校特色和优势在讲。
甚至还有学校逼迫副教授几年以内要升等成正教授,不然会被踢出去。
升等的途径是什麽?在早期不论科大还是普大,都一样是论文点数。
2000 年初期台科身为技职龙头,却率先叛离技职体系,开始偏爱高中生而非高职生。
这背後的原因到底是什麽也很明白,就是养肥养大以後拐他们签下去,帮他们发论文。
这种瑕疵满满的评监制度洗走了一波认真教学的教育家,留在学术界的大都剩嘴炮王。
21F:推 y2468101216: 认真推 06/27 09:48
22F:推 g5637128: 推 06/27 10:05
23F:推 yamakazi: 遇到贵人了 06/27 10:13
24F:推 jn840129: 推 06/27 10:24
25F:推 Elaine0530: 推 06/27 10:32
26F:推 GameHeven: 无敌认真 06/27 10:49
27F:推 transforman: 超认真文给推 06/27 10:53
28F:推 lu1626: 愿意花时间打这一长篇 给推 06/27 11:18
29F:推 popcool: 认真教学给推 06/27 11:21
30F:推 SongIceFire: 06/27 11:25
31F:推 turkeyonly: 请受我一拜 06/27 11:41
32F:推 benben994: 你怎麽可以解释的这麽好 06/27 11:47
33F:推 cool9203: 推超认真 06/27 11:50
34F:推 kerkerhaha: 这个Diu 06/27 12:04
※ 编辑: tinlans (122.116.164.123), 06/27/2018 12:11:33
35F:推 cphe: 半路出家的真的不用坚持初学要选C/C++,现在不是十几二十年 06/27 13:19
36F:→ cphe: 前,现今现代化的语言很多可以学,学起来也有成就感 06/27 13:19
37F:推 jojojen: 推 06/27 13:23
38F:推 uly: 每次听到初学者说要学好C++就好想吐槽 时代变了 06/27 13:39
39F:嘘 s89162504: 平衡一下 人家只是想问本书而已 06/27 13:50
40F:→ s89162504: 你贴个c++ reference的网站都比这样碎念一堆有用吧 06/27 13:51
学习方法不正确,看哪本书都没有用。
不然我可以照本宣科搬出两本圣经本:
1. The C++ Programming Language, 4th Edition
2. C++ Primer, 5th Edition
然後一本查询函式库用的工具书:
3. The C++ Standard Library: A Tutorial and Reference (2nd Edition)
2 在前一篇有人推过了。但是那本书更新 C++11 之後的方式我觉得很偷懒,所以不推。
如果是在 1998 年到 2011 之间的时期问,我会推第三版,第四版不推。
1 基本上只推荐读原文书,中译本把原文书强调重点用的蓝字弄不见了,不利於阅读。
好,然後 1 这本书一共 1368 页,2 这本书 976 页,3 这本 1128 页。
我什麽都不讲,直接开这三本丢给他,最多跟他说 2 可以先不读。
以前我也常干这种事,结果通常就是对方拿到书几天後跑来跟我说:
「哇,你好厉害喔,这麽厚的书居然读得完好几本。」
然後呢?就没有然後了,顶多就是几天後拍卖网站上多了几本九成新电脑书。
不然就是供在自己书架上,朋友来看到会问,然後回答说自己其实买来以後没看几页。
让人推荐选书就是这样,也不知道买这本书是要吸收什麽东西,最後就是浪费钱而已。
所以我叫他自己去天珑书局先找适合自己看的书打基础啊,总比丢砖头书给他读好。
说真的基础要打得紮紮实实,除了这几本我真的没有什麽其它推荐的。
但是一开始就去看这些书真的好吗?感觉这样只是在叫人不要学 C++ 而已。
加上我有爬到他在八卦板发过的文:
[问卦] 大学原文书再冲沙小?
https://webptt.com/cn.aspx?n=bbs/Gossiping/M.1521798376.A.4B3.html
你觉得有着这样想法的人,不告诉他程式语言该怎麽学,就丢千页圣经本给他,
对於一个会发文说原文书 90% 以上都是干话,只好去刷题目的学生而言,
他拿到书以後会有什麽反应?
他找到很多图解的书觉得很适合他,但他也发现图解多的书写不了多少东西。
你可以想像那些上千页的圣经本,再对每个观念逐一加上图解会有多厚吗?
看图解的书不是不行,拿来帮助入门可以,但最後养观念还是得看都是字的书。
可是都是字的书恐怕会让他觉得里面充满着废文,不知道怎麽读下去。
用网路学程式语言,其它语言或许可以吧,C++ 恐怕很难。
至少我还没看过履历写精通 C++ 的人是看网站学好 C++ 的,如果有的话我真想见见。
写略懂的的确不少,但很多一问三不知,而且常常在问怎麽学的都回答看网页学。
问 iterator 会失效的状况也常常回答不出来,问了发现以前老师是发一张表给他背,
考试考完就忘记了,课修完以後就再也没复习过,研究所也不考,所以现在想不起来。
这都是没有系统化学习造成的问题,从根本上去理解的话这些根本不可能忘。
而且我也说了,如果他听不进去,坚持要人家推荐书给他的话,
他可以去 C_and_CPP 板发文问,那样的话还会比较多人回。
只是他得到的答案,跟他自己去 Google 查到的应该不会差太多吧。
41F:→ aszx4510: 楼上 人家Andes你敢嘴? 06/27 13:56
42F:推 stfang925: 回答一篇文也可以帮助无数有类似问题的人 为何不要 06/27 14:10
43F:推 stfang925: 要书关键字google10秒钟就有答案了 而且如果整篇文看 06/27 14:13
44F:→ stfang925: 完还能理解成碎念也是有点惨... 06/27 14:13
45F:→ eva19452002: 本篇让我快速复习了程式语言 06/27 14:24
46F:推 bnd0327: 推认真 06/27 15:17
47F:推 xsion: 你Google原po发过的文应该会先看到一堆八卦废文吧 06/27 15:47
是啊,但多少还是看得到他学习和成长过程的蛛丝马迹。
48F:推 justben: 认真推 06/27 15:55
49F:推 Ekmund: 从方向到范例都解析一遍了...你真的是个好人 (递 06/27 16:04
50F:→ kikilalagirl: 留在学术界的大都剩嘴炮王 XDDD 06/27 16:04
※ 编辑: tinlans (122.116.164.123), 06/27/2018 16:07:57
51F:→ Ekmund: C我现在定位成一个接触程式的进入点 它和电脑的运作逻辑 06/27 16:07
52F:→ Ekmund: 贴合得比较密 不一定要将它发展成谋生工具 实际上也大多 06/27 16:08
53F:→ Ekmund: 不是 现在是web面需求满天飞 讲到"学好"什麽 先有方向吧 06/27 16:10
54F:推 cphe: 嘘的人根本想红,这篇可以留给非本科或觉得C/C++学不会人生 06/27 16:20
55F:→ cphe: 就失败的人看,何乐而不为? 06/27 16:20
56F:→ cphe: 想知道书,专版爬一下就很多了 06/27 16:21
57F:→ Ekmund: 我现在才注意到发文时间凌晨四点... 06/27 16:22
58F:推 beaprayguy: 我是电子科系。非常懂原po表达的 06/27 16:30
59F:→ beaprayguy: 电子科大教授就像版大讲的 06/27 16:31
60F:推 BigHeadDoggy: 推 06/27 16:48
61F:推 Eric0605: 推 06/27 17:09
62F:推 keke0421: 热心推...你也打太多了 @.@ 06/27 17:16
63F:推 greenstar27: 大推!!!也受教了 06/27 17:40
64F:推 TitanEric: 推超级认真文 06/27 18:32
65F:推 RadiationXen: 热心推 06/27 19:44
66F:推 E33258: 认真推 06/27 20:11
67F:推 Raymond0710: 太认真啦 推 06/27 20:18
68F:推 pttrAin: 你怎麽可以这麽专业这麽佛心qq 06/27 20:26
69F:推 MyNion: 好猛,原PO你花了多少时间打这篇文啊? 06/27 20:54
70F:推 es8603: 超级热心好人 还去google他的po文做分析 推 06/27 20:58
71F:推 sa074463: 原PO热心又超强 推 06/27 21:41
72F:推 s06yji3: 跪着推 06/27 22:31
73F:推 scps950707: 推晶心 06/27 22:46
74F:推 qpalwosk: 意图使人求内投andes..XD 06/27 23:29
75F:推 ketrobo: 这好文 06/28 00:25
76F:推 qwe85158: 推! 值得学习 06/28 00:30
77F:推 king37937: 推!有目的地学习才能持续下去 06/28 01:21
78F:推 Lhmstu: 推用心 06/28 03:03
79F:推 oxlittle: 我觉得蚂蚁书不错 06/28 04:28
80F:推 becca945: 我喜欢蚂蚁书 06/28 08:52
81F:推 wuliou: 这篇必须推 06/28 09:13
82F:推 ralfer: 推 当年入门自己啃C++ primer超痛苦的... 06/28 10:50
83F:推 chouanhsu: 推u文 06/28 11:34
84F:推 swinds24: 推荐,觉得写得非常好! 06/28 11:40
85F:推 zonppp: 推~动机真的很重要,没有实际要完成的东西真的会不知道在学 06/28 15:10
86F:→ zonppp: 什麽 06/28 15:11
87F:推 suninrain: 推推~真佛心~学C++有文主带入门真的很有方向啊~ 06/28 15:45
88F:推 BlazarArc: 推 06/28 16:03
89F:推 NCTU87: 对详细 06/28 19:04
90F:→ NCTU87: 推== 06/28 19:04
91F:推 hakosaki: 详细推 嘘文哈哈哈哈哈 06/28 19:28
92F:推 akito117: 好文推 06/29 10:05
93F:推 gowellplayer: 推 06/29 10:08
94F:推 hotahaha: 推 06/30 09:38
95F:推 zenuo: 佛系神人 推 06/30 09:47
96F:推 Dreamerrr: 获益良多 真的感激不尽 谢谢原Po 推! 07/02 02:55
97F:推 jellyfishuan: 跟原原po有类似的背景然後是资工升大三 看到这篇让 07/02 13:52
98F:→ jellyfishuan: 我有方向知道暑假要怎麽精进自己了QQ 07/02 13:52
99F:→ jellyfishuan: 有时候真的很不适应现在这种教学方式哈哈 07/02 13:52
这篇其实大多是在讲 C 基础,如果已经对这些没问题,那 C++ 的学习才刚要开始。
C++11 之前的书大都粗略把 C++ 的 programming paradigm 分成四大类:
1. procedural programming
2. object-based programming (又称为 ADT)
3. object-oriented programming
4. generic programming
如果只学跟纯 C 共通的部分,那差不多就是只学到四分之一的 C++03。
一般学校可能会教到 3 的开头,後面就会因为老师本身不熟物件导向教不下去。
物件导向不是单纯把现实世界的物体假想成物件来写程式这麽简单,
但很多台湾人写的书会这样胡诌,造成新手制造出很多滥用、误用继承的案例。
先不要说新手,很多自称熟悉物件导向的人终其一生都可能不知道怎样才是正确的。
不得不说欧莱礼的深入浅出系列救了不少人,可惜它的范例是 Java。
100F:推 CJhang: 优文 以前走过 帮推个 07/04 03:19
※ 编辑: tinlans (122.116.164.123), 07/06/2018 14:12:18
101F:推 A1ch3mi5t: 推 07/06 23:48
102F:推 rightbear: 推优文,最近也要开始学C++ 02/22 16:58
103F:推 physichu: 认真推 06/20 20:46
104F:推 iloveapple: 太强了 09/24 01:18
105F:推 pepperonm: 好文推 07/28 04:38