2023年09月10日 星期五
撰寫人:阿艦
《think c++》 第一章學習筆記:
1、對於已經存在的資料型別的作用是什麼?
答:這些已存在的資料型別的設計動機僅僅是為了描述機器的儲存單元。
2、我們自定義類是為了做什麼的?或者說我們為什麼要設計類這個概念呢?
答:類描述了一組有相同特性(資料元素)和相同行為(函式)的物件。類實際上就是資料類
型,例如,浮點數也有一組特性和行為。區別在於程式設計師定義類是為了與具體問題相適應,
而不是被迫使用已存在的資料型別。
3、物件導向的作用是什麼呢?或者說我們為什麼大量採用oop所謂物件導向的技術呢?
答:oop技術能很容易地將大量問題歸納成為乙個簡單的解,這一發現產生了大量的oop語言,
後期更為強勢的物件導向的c++語言騰空問世。這也成為了業界公認的領軍者。
4、繼承的核心概念是什麼?繼承的基類有什麼意義?子類對於繼承基類又是出於什麼動機呢?
直插重點來說,繼承在我們實際開發中的意義,或者說它存在的價值是什麼?
答:(1)繼承表示了基本型別和派生型別之間的相似性。
(2)程式設計師建立乙個基類以描述系統中一些物件的思想核心。
(3)表達了認識該核心的不同途徑,他的意思也就是說子類仰仗父類的功能體系來完善自己的行為。
(4)有些行為可以不同(計算形體的面積)。型別層次結構既體現了形體間的類似,又體現了它們
之間的區別。
在此,我個人總結乙個公式:共性 + 區別 = 繼承
二、多型性
5、多型性出現的條件是什麼?或者說多型出現的理由是什麼?
答:當處理型別層次結構的時候,程式設計師常常希望不把物件看做是某一特殊型別的成員,而把它看做是基
本型別成員,這樣就可以編寫不依賴於特殊的**。
6、往專案中擴充套件功能最有效最減少維護費用最基本的方法是什麼呢?
答:可以派生出形體的乙個新的子類稱為五邊形,而不必修改那些處理一般形體的函式。通過派生新子類
很容易擴充套件程式,這個能力很重要,因為它極大的減少了軟體維護的花費。
7、介紹兩個概念:「早**」&&「晚**」,是什麼意思?
答:所謂的「早**」就是程式在編譯階段,編譯器已經確定了該呼叫哪個具體的函式,就是一般所說的
「靜態聯編」;
所謂的「晚**」是程式在編譯階段不去確定它應該呼叫具體的哪個函式。但是編譯器保證該函式是
具體存在的,只負責檢查引數值和返回型別的檢查,但是它不知道準確應該呼叫哪個確定的函式。一切
都是在程式執行的時候才被確定下來。這就是我們常說的「動態聯編」。為了實現這個「動態聯編」,編
譯器在真正呼叫的地方插一段二進位制**。通過使用存放在物件自身中的資訊,這段**在執行的時候,
計算被呼叫函式的位址。這樣每個物件就能根據乙個指標的內容有不同的行為。當乙個物件接收到訊息的,
它根據這個訊息來判斷應該做什麼。
8、虛函式的作用virtual是什麼?
答:程式設計師可以使用virtual表明他希望某個函式有「晚**」的特性,而不需要懂得virtual的使用機制。沒有
它就不能用c++做物件導向的程式設計。virtual函式(虛函式)表示允許在相同家族中的類有不同的行為。這
些不同是引起多型行為的原因。
在這裡我仍然給多型乙個公式:對映 + 靈活 = 多型
三、如何組織乙個專案呢?
答:(1)方法中不含有不需要的東西。記住,「七加減二」規則的複雜性。(瞬間人們只能在頭腦中存放這麼多東西)
額外的細節就變成了一種負擔,必須維護它,為它花錢。
(2)通過深入到描述層,人們應該能夠得到所需要的資訊。即我們可以在較高的抽象層上建立一些隱藏的層,僅
在需要的時候,它們才可見。
(3)符號應當盡可能的少。過多的鰲頭可能會使軟體變壞。
(4)系統設計和類設計是互相隔離的問題。類是可重用的工具,而系統是對特殊問題的解(雖然系統設計也是可
重用的)。符號應該首先集中在系統設計方面。
(5)類設計符號是必須的嗎?由c++語言提供的類表達對大多數情況是足夠的。如果符號在描述類方面不能比用
oop語言描述有乙個明顯的推進,就不要使用它了。
(6)符號應在隱藏物件的內部實現。在設計期間,這些內部實現一般不重要。
(7)保持符號簡單。我們想用我們方法做的所有的事情基本上就是發現物件及如何互相連線以形成系統。如果乙個
方法或符號要求更多的東西,則應當問一問,該方法花費我們的時間是否合理。
四、下面開始具體的分析乙個系統(專案),著手設計到實現的思路。或者說是大綱:
答:(1)高概念:建立的系統無論多麼複雜,都有乙個基本的目的,它服務於哪乙個行業和它應該達到的基本的要求
這個綱領很重要,這是我們開發的主線或者說是依據。
(2)論 述:實際上就是整個專案的模組劃分設計的初期設計的產物。
(3)結構化:對於系統,結構是它的重中之重。沒有結構,何談什麼架構,就會瞎忙活一氣,到頭來就是個杯具。
有了結構,故事就有了開端。故事的結構通過特徵來體現(特徵就是c++中的物件了),情節結構對應
於系統設計。
用乙個公式描述這段話就是:客戶要求 + 物件模型 = 結構化
(a)組織系統
也就是設計主線,心裡邊團隊得有個大致的研發組織方向。
(b)特徵:發現初始物件
我們不要總是在物件段裡,分析這個論述時應當在物件和系統設計之間來回磨合運動。著眼全域性。
(3)情節:初始系統設計
(4)依據以上設計編碼並不斷改之
讀書筆記3
1.資料治理的本質 資料治理的本質是組織對資料的可用性 完整性和安全性的整體管理。可用性指資料可用 可信且有質量保證,不會因為分析結果的準確性造成偏差,從業者可以放心地根據資料結果做業務決策 完整性分為兩個方面,一方面指資料需覆蓋各類資料應用的需要,另一方面指不會因為資料治理沒有到位而造成資料資產的...
Effective C 讀書筆記3
條款8 別讓異常逃離析構函式 c 並不禁止析構函式吐出異常,但不鼓勵這樣做。但如果你的析構函式必須執行乙個動作,而該動作可能會在失敗時丟擲異常,該怎麼辦?兩個辦法解決 一是 如果丟擲異常程式就結束,通常通過呼叫abort函式完成 dbconn dbconn catch 如果程式遭遇乙個於析構期間發生...
C primer plus 讀書筆記(3)
1.系統預設將非整數儲存為double型,所以在計算時會出現將double型轉為float型的警告。2.f float型和double型 d int型 o 八進位制整數型 o 加上 號會有字首0 x 十六進製制整數型 x 加上 號會有字首0x u unsigned int ld long int l...