📄 00000004.htm
字号:
<BR>第4节:C++ 的基础 <BR>------------------ <BR>Q10:什麽是类别(class)? <BR>Q11:什麽是物件(object)? <BR>Q12:什麽是参考(reference)? <BR>Q13:如果设定某值给参考会怎麽样? <BR>Q14:怎样才能将参考改设成别的物件? <BR>Q15:何时该用参考,何时又该用指标? <BR>Q16:行内函数是做什麽的? <BR> <BR>第5节:建构子和解构子 <BR>---------------------- <BR>Q17:建构子(constructor)是做什麽的? <BR>Q18:怎样才能让建构子呼叫另一个同处一室的建构子? <BR>Q19:解构子(destructor)是做什麽的? <BR> <BR>第6节:运算子多载 <BR>------------------ <BR>Q20:运算子多载(operator overloading)是做什麽的? <BR>Q21:哪些运算子可以/不能被多载? <BR>Q22:怎样做一个 "**"「次方」运算子? <BR> <BR>第7节:夥伴 <BR>------------ <BR>Q23:夥伴(friend)是什麽? <BR>Q24:「夥伴」违反了封装性吗? <BR>Q25:夥伴函数的优缺点? <BR>Q26:「夥伴关系无继承及递移性」是什麽意思? <BR>Q27:应该替类别宣告个成员函数,还是夥伴函数? <BR> <BR>第8节:输入/输出:<iostream.h> 和 <stdio.h> <BR>--------------------------------------------- <BR>Q28:该怎样替 "class Fred" 提供输出功能? <BR>Q29:为什麽我该用 <iostream.h> 而不是以前的 <stdio.h>? <BR>Q30:为什麽我处理输入时,会超过档案的结尾? <BR>Q31:为什麽我的程式执行完第一次回圈後,会对输入的要求不加理睬? <BR>Q32:在 DOS 及 OS/2 的 binary 模式下,要怎样来 "reopen" cin 及 cout? <BR> <BR>========== POSTING #2 ========== <BR> <BR>第9节:自由记忆体管理 <BR>---------------------- <BR>Q33:"delete p" 会删去 "p" 指标,还是它指到的资料,"*p" ? <BR>Q34:我能 "free()" 掉由 "new" 配置到的、"delete" 掉由 "malloc()" 配置到的 <BR> 记忆体吗? <BR>Q35:为什麽该用 "new" 而不是老字号的 malloc() ? <BR>Q36:为什麽 C++ 不替 "new" 及 "delete" 搭配个 "realloc()" ? <BR>Q37:我该怎样配置/释放阵列? <BR>Q38:万一我忘了将 "[]" 用在 "delete" 由 "new Fred[n]" 配置到的阵列,会发生 <BR> 什麽事? <BR>Q39:成员函数做 "delete this" 的动作是合法的(并且是好的)吗? <BR>Q40:我该怎麽用 new 来配置多维阵列? <BR>Q41:C++ 能不能做到在执行时期才指定阵列的长度? <BR>Q42:怎样确保某类别的物件都是用 "new" 建立的,而非区域或整体/静态变数? <BR> <BR>第10节:除错与错误处理 <BR>------------------------ <BR>Q43:怎样处理建构子的错误? <BR>Q44:如果建构子会丢出例外的话,该怎麽处理它的资源? <BR> <BR>第11节:Const 正确性 <BR>---------------------- <BR>Q45:什麽是 "const correctness"? <BR>Q46:我该早一点还是晚一点让东西有常数正确性? <BR>Q47:什麽是「const 成员函数」? <BR>Q48:若我想在 "const" 成员函数内更新一个「看不见的」资料成员,该怎麽做? <BR>Q49:"const_cast" 会不会丧失最佳化的可能? <BR> <BR>第12节:继承 <BR>-------------- <BR>Q50:「继承」对 C++ 来说很重要吗? <BR>Q51:何时该用继承? <BR>Q52:怎样在 C++ 中表现出继承? <BR>Q53:把衍生类别的指标转型成指向它的基底,可以吗? <BR>Q54:Derived* --> Base* 是正常的;那为什麽 Derived** --> Base** 则否? <BR>Q55:衍生类别的阵列「不是」基底的阵列,是否表示阵列不好? <BR> <BR>⊙12A:继承--虚拟函数 <BR>Q56:什麽是「虚拟成员函数」? <BR>Q57:C++ 怎样同时做到动态系结和静态型别? <BR>Q58:衍生类别能否将基底类别的非虚拟函数覆盖(override)过去? <BR>Q59:"Warning: Derived::f(int) hides Base::f(float)" 是什麽意思? <BR> <BR>⊙12B:继承--一致性 <BR>Q60:我该遮蔽住由基底类别继承来的公共成员函数吗? <BR>Q61:圆形 "Circle" 是一种椭圆 "Ellipse" 吗? <BR>Q62:对「圆形是/不是一种椭圆」这两难问题,有没有其他说法? <BR> <BR>⊙12C:继承--存取规则 <BR>Q63:为什麽衍生的类别无法存取基底的 "private" 东西? <BR>Q64:"public:"、"private:"、"protected:" 的差别是? <BR>Q65:当我改变了内部的东西,怎样避免子类别被破坏? <BR> <BR>⊙12D:继承--建构子与解构子 <BR>Q66:若基底类别的建构子呼叫一个虚拟函数,为什麽衍生类别覆盖掉的那个虚拟函 <BR> 数却不会被呼叫到? <BR>Q67:衍生类别的解构子应该外显地呼叫基底的解构子吗? <BR> <BR>⊙12E:继承--Private 与 protected 继承 <BR>Q68:该怎麽表达出「私有继承」(private inheritance)? <BR>Q69:「私有继承」和「成份」(composition) 有多类似? <BR>Q70:我比较该用哪一种:成份还是私有继承? <BR>Q71:我应该用指标转型方法,把「私有」衍生类别转成它的基底吗? <BR>Q72:保护继承 (protected inheritance) 和私有继承有何关连? <BR>Q73:"private" 和 "protected" 的存取规则是什麽? <BR> <BR>第13节:抽象化(abstraction) <BR>------------------------------- <BR>Q74:分离介面与实作是做什麽用的? <BR>Q75:在 C++ 里,我该怎样分离介面与实作(像 Modula-2 那样)? <BR>Q76:ABC ("abstract base class") 是什麽? <BR>Q77:「纯虚拟」(pure virtual) 成员函数是什麽? <BR>Q78:怎样替整个类别阶层提供列印的功能? <BR>Q79:何时该把解构子弄成 virtual? <BR>Q80:虚拟建构子 (virtual constructor) 是什麽? <BR> <BR>========== POSTING #3 ========== <BR> <BR>第14节:程式风格指导 <BR>---------------------- <BR>Q81:有任何好的 C++ 程式写作的标准吗? <BR>Q82:程式撰写标准是必要的吗?有它就够了吗? <BR>Q83:我们的组织该以以往 C 的经验来决定程式撰写标准吗? <BR>Q84:我该在函数中间或是开头来宣告区域变数? <BR>Q85:哪一种原始档命名惯例最好? "foo.C"? "foo.cc"? "foo.cpp"? <BR>Q86:哪一种标头档命名惯例最好? "foo.H"? "foo.hh"? "foo.hpp"? <BR>Q87:C++ 有没有像 lint 那样的指导原则? <BR> <BR>第15节:Smalltalk 程式者学习 C++ 之钥 <BR>--------------------------------------- <BR>Q88:为什麽 C++ 的 FAQ 有一节讨论 Smalltalk?这是用来攻击 Smalltalk 的吗? <BR>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -