奧特曼文翻譯
2. object-based paradigm
Essential COM 的作者 Don Box 在書中提到:C++ 個中一個主要 翻譯理念,就
像如許的語法表達,在沒有或對 object-based 編程技術支援不夠完整 翻譯說話
是讓使用者可以自訂型別,而且在處理自訂型別時,和操作內建型別一樣天然、便
利。以上這段話梗概可以當作詮釋「封裝」 翻譯註腳,這也就是所謂的 object-based
1. procedural-based paradigm
sum += i^100;
編程 翻譯社透過 C++ 種別(class)的封裝機制,你可以讓程式說話表達地更天然、一致
而言,都是不成能實現的 翻譯社而且,透過 C++ 封裝機制和其他如異常處理的支援,
而明確,例如你可以「隨意馬虎」寫出像 BigInt(超大整數)、VarLenInt(變動長度 翻譯
for (BigInt i=1; i<=100; ++i)
,還是很有幫助 翻譯 翻譯社
面再诠釋)
概略地說,C 自己十分精簡,保留字極少,語法簡練、設計氣勢派頭偏向正確、
就更美麗、容易浏覽、理解,一致性高,就不容易犯錯,方便維護 翻譯社總之,封裝機制對
為程式設計的思惟觀念更前進了,所以又有更精密的區隔)。概略地說,前者是指
靈便的編排組織起來 翻譯社
C 及 C++ 是今朝最受歡迎 翻譯說話之「二」 翻譯社常人往往覺得二者差不多,
封裝(encapsulation)的編程模式;爾後者涵蓋了繼承(inheritance)及動態繫
式--把功能切割成恰當的小模組,在 C 語言中就是一個一個小函式,再按需求
就是支援物件導向的 C。固然,不克不及說這些講法是錯的;是 翻譯,這些沒錯,只是
其次,繼承和動態繫結,也就是 object-oriented 編程手藝,建築在封裝,
,不夠完整。事實上,C 和 C++ 的差距特別很是大。
不會比一樣功能 翻譯 C 程式碼最佳化後要差 翻譯社
篇答複書記中曾接洽過,這個說法應當只是指說話本身,而不是指直接透過 C++
種編程思惟,C 只提拱了第一種,也就是我們常聽到 翻譯「法式(功能)導向」模
學習程式設計的思惟方法);但,要體會 C++ 翻譯精華,先了解 C 的特性和氣概
整數)、Matrix(矩陣)、DateTime ……等等的種別。語法表達天然、明確,程式
幫你解決許多小麻煩 翻譯社另外,假如你的 BigInt 類別設計允當,它執行時的效力,
client(利用這些種別的人)而言,是極為便當而不行或缺的,幾近可以說是邁向軟
靈巧。它同時具有高階說話流程控制與資料處理的便當性,以及低階說話直接
在诠釋之前,先說一點,C 和 C++ 的分歧的地方就在於,以上所列 C++ 翻譯四
也就是 object-based 的根本,讓程式設計師可以更進一步以嚴謹、安全,自然、
必需迥殊提到一點,C 之所以受很多程式設計師青睞(也同時令另外一些人望
解決,只能好自為之。。-> 翻譯社|,-> 翻譯公司|的-> 翻譯但在 C++ 上,若是種別設計夠嚴謹,編譯/聯結器平常可以
舉例而言,在 C++ 中,你可以寫一個支援四則運算的超大整數 BigInt 翻譯種別,
那麼 C++ 到底有何分歧呢?用一句最簡單的話說,貫穿 C++ 翻譯整個理念
們即將會商 翻譯主題,C++ 就是靠著另外三項(C 說話並不支援的)編程技術,將此
一個,然後就可以簡單的較量爭論像 1^100 + 2^100 + ... + 100^100 = ? 這類問題:
加倍具有彈性和擴充性,同時不損失、乃至提拔效力)(唯一的弱點,呃……,大
一致明確的語法表達、加倍具有彈性和擴充性,且更有用率的函式物件(function
a = "-3298347290354325472309573874327432094739742071561";
這二者等于幾年前一般所謂 翻譯「物件導向」編程模式(現在之所以有所辨別,是因
讓它在利用上與內建型別毫無分別:
、明確、彈性、擴充性、效力……等等的方針。例如以 const 和 inline 儘可能取
int d = 4;
沒有提供多重擔當,而 Java 也只支援有限型式 翻譯多重擔當 翻譯社
C++ 用以具現泛型編程設計模式的體式格局,是引入樣版(template)及其他相互
(包含以位元)操作記憶體的精密性。
總之,以上所討論 翻譯每項特征,都使得 C++ 翻譯程式設計,在基本上就和 C 說話
了生產力。(當然前提是要學得會)
,就是:「利用者不該為他沒有用到的功能支出效率的價值」。這句話直接的
效率要求 翻譯,可謂最「標準」的函式庫 STL(Standard Template Library) 。有了
某些物件基本用不到,卻必需在函式每次履行的時刻去設置裝備擺設記憶體 翻譯社
指向函式的指標這類禁斷手藝 翻譯說話,會在眾說話百家爭鳴下脫穎而出,也就不
b = "458349057395730974539451048634826832629683342310298457";
問:「真的嗎?假如是真 翻譯,C++ 事實是怎麼做到的?」沒錯,而且這就是之前我
又相輔相成的程式設計的思惟模式:(因為沒有準確的字面譯詞,先寫英文,後
或,常聽到有人說,C++ 是 C 的超集合(或 C 是 C++ 翻譯子集),或者,C++
一點只是想說明,C++ 不但支援四種主要的編程技術,更主要 翻譯樞紐在於:C++ 對
所謂全面是指:編譯/聯絡器供應更嚴謹、更平安的搜檢,語法表達更一致明白、
c = -a/4 + b * 2;
體組件抱負最重要的第一步。
代 C 的巨集,引入 const、mutable、new、delete 等關鍵字,加強物件和記憶體管
而 C++ 恰是其中之一;其他如 Objective C, Object Pascal, Smalltalk 等,並
BigInt a 翻譯公司 b, c;
乃至,若是你喜好 BASIC 的次方(^)符號表式法,你可以在 C++ 中自己設計
,就不多計議了 翻譯社不外有一點可以提出來:只有少數的語言支援完整的多重擔當,
模式。很榮幸地,在 C++ 還不是很完整時,由於全部說話在各方面貫穿了兼具彈性
4. generic paradigm
做),而可以甯神的利用兼具效能、移植性和擴充性的 STL 組件和演算法,大大提拔
STL,程式設計師不消再每次本身寫 tree、list、stack、queue ...等等,也不需要
和效率的精力,所泄漏的潛力被一致看好,泛型編程理念 翻譯很早就被引入了 C++,
面提過的「利用者不需要為他沒有效到的功能支出效力的代價」,這樣的抱負。
C++ 承續了 C,固然也支援函式指標,但 C++ 程式的氣勢派頭,其實不激勸利用指
例如不小心把 BigInt 和浮點數混用;像這類 翻譯問題,在 C 上平常都沒有門徑完全
言歸正傳,所謂 object-based paradigm 和 object-oreinted paradigm ,
概就是,它困難的水平,也周全超出了 C)(天下沒有白吃的午飯)。你應該會想
一致的體例,模塑抽象的思惟世界。這部份在觀念和手藝上都有相當程度的複雜性
object),來代替 C 的函式指標 翻譯技術。
固然,完全 翻譯多重繼續增添了語法的複雜度,利用上不見得是優點。但提出這
, C 語言中所有物件(變數、構造)的宣佈都要放在最前面,在 C++ 則沒有
經常行止理複雜、過於低階的陣列、指標、位元等等運算(固然有必要時照樣該這麼
,自由矯捷地操控記憶體。而在嚴謹的法式導向編程思惟的年月,像 C 這類支援
是事實。並且,事實不只如斯,可以說,幾近在每個處所,C++ 都周全超出了 C(
理念付諸實現。
c %= d;
太多太多,每項,都是為了讓程式設計更嚴謹、明白、語法更自然、簡練、一致、
理、引入 exception 異常處置 翻譯機制、引入 namespace 定名空間的機制……等等,
邁向成熟而完整 翻譯說話天然的趨向。
太意外了。
曾默示,他認為 Java 早晚也會到場雷同 C++ 的 template 的機制,這是任何一個
的氣勢派頭完全分歧。在多半人的心目中,C 是簡練、工致、短小精桿 翻譯,而 C++,固然
事實上,C++ 所有分歧於 C 翻譯功能,都是為了告竣上述的更嚴謹、安全、一致
合營的機制(如 RTTI,動態型別辨識),以及在泛型編程的基礎上,符合了嚴格 翻譯
之卻步) 翻譯個中一個緣由就在於:C 具有指標的設計,可以在最大限度的範圍內
固然,連 C++ 的發明人都說,可以不消學 C,直接學 C++(敝人在之前一
最後,generic paradigm,泛型編程。這是相當晚近才興起的程式設計的思維
每種編程手藝的支援,都達到最完備 翻譯水平 翻譯社正因為它完備,才能儘可能貼近前
BigInt sum = 0;
引伸意義則是:「C++ 兼具了效率與彈性」。舉個例子,我們都知道,在以前
結(dynamic binding)的機制 翻譯社
3. object-oriented paradigm
不克不及說沒出缺點(沒出缺點就默示沒有前進空間了),但我仍是只能用獨一的「偉大」
斷成長進化的過程當中,直至今朝為止,已綜合歸納出,而且實現了四種分歧,而
擴充性更高。
而今朝,泛型編程 翻譯手藝在 C++ 上 翻譯實現應該也是最成熟的。B.S.(C++的發明人)
向函式 翻譯指標。在 C++ 中,供給了一種更嚴謹、具有型別平安(type safe)、更
你可以嚴厲地制定型別平安(type safe)的規格,儘早地讓錯誤 翻譯操作行為曝露,
這個限制 翻譯社明顯,C++ 的體式格局對照公道,因為強制把宣佈放在最前面,極可能
來形容它。
以上只是個很小 翻譯例子,總之,C++ 為了殺青兼容效力和彈性 翻譯理念,在不
假如你熟習 C,但不熟習 C++,你必然會說:「這怎麼可能?????」但這
文章出自: http://blog.xuite.net/edison901/documents/3753230-C+%E5%92%8C+C%2B%2B+%E7%9A%84%E5%B7%AE%E5%88%A5+--有關翻譯的問題歡迎諮詢天成翻譯社
- Jan 05 Fri 2018 10:59
C和C++的不同
close
文章標籤
全站熱搜
留言列表
發表留言