掃二維碼與項目經(jīng)理溝通
我們在微信上24小時期待你的聲音
解答本文疑問/技術(shù)咨詢/運營咨詢/技術(shù)建議/互聯(lián)網(wǎng)交流
下面著重講述學(xué)習(xí)C++語言時碰到的相關(guān)難題和問題,以及學(xué)習(xí)C++語言的技巧,以及如何更好的進行C++的學(xué)習(xí)?這些問題都困擾著許多開發(fā)人員進行開發(fā)活動。

漢南網(wǎng)站制作公司哪家好,找創(chuàng)新互聯(lián)!從網(wǎng)頁設(shè)計、網(wǎng)站建設(shè)、微信開發(fā)、APP開發(fā)、響應(yīng)式網(wǎng)站設(shè)計等網(wǎng)站項目制作,到程序開發(fā),運營維護。創(chuàng)新互聯(lián)2013年至今到現(xiàn)在10年的時間,我們擁有了豐富的建站經(jīng)驗和運維經(jīng)驗,來保證我們的工作的順利進行。專注于網(wǎng)站建設(shè)就選創(chuàng)新互聯(lián)。
C++在其存在的“當時”那個時期必須是有用處的;每一種語言特性必須有一個有根據(jù)的、明確的實現(xiàn)方案;總能提供一種變通的方法;能為意欲支持的每一種程序設(shè)計風(fēng)格提供易于理解的支持方法;不強制于人。
可以注意到,基本規(guī)則的***三條暗示了兩點:對適用于真實世界中各種應(yīng)用的便捷工具的強調(diào);對程序員的技術(shù)和取向(偏好)的充分考慮。從一開始,C++面向的就是那些要做實際項目的程序員。
所謂的“***”被認為是不可能達到的,這是由于C++用戶在需求、背景和待解決問題上存在著太大的不同。況且,在一門通用目的的程序設(shè)計語言的整個生存期之內(nèi),連對“***”一詞的詮釋都可能會有極大的改變。由此可知,在語言的演化過程中,來自用戶的反饋和語言實現(xiàn)者們積累的經(jīng)驗才是最為重要的。
[基于設(shè)計的規(guī)則(Design-support rules)]支持良好的設(shè)計方案;提供用于程序組織的語言設(shè)施;心口如一(Say what you mean);所有的語言特性必須具有切實有效的承受能力;開啟一個有用的特性比避免所有的誤用更為重要;能將獨立開發(fā)的部件組合成完整的軟件。
C++的一個目標就是提供更易用并具有一定承受能力的設(shè)計思想和程序設(shè)計技術(shù),進一步提高程序的質(zhì)量。這些技術(shù)中的絕大部分都源自Simula [Dahl,1970][Dahl,1972][Birtwistle,1979],并通常被作為面向?qū)ο蟪绦蛟O(shè)計和面向?qū)ο笤O(shè)計思想來討論。
然而,C++的設(shè)計目標總還是在于要支持一定范圍內(nèi)的各種程序設(shè)計風(fēng)格和設(shè)計思想。這與一般在語言設(shè)計方面的觀點形成一定對比。一般在語言設(shè)計上總是試圖將所有系統(tǒng)內(nèi)建于單獨一個被重點支持的、帶有強制性的程序設(shè)計風(fēng)格之中(或稱典范paradigm)。[語言的技術(shù)性規(guī)則(Language-technical rules)]與靜態(tài)型別系統(tǒng)(Static type system)沒有內(nèi)在的沖突;像對內(nèi)建(built-in)型別一樣對用戶自定義型別提供很好的支持;
個異化(locality)行為是可取的;避免產(chǎn)生順序上的依賴關(guān)系;在對語言產(chǎn)生疑惑時,可以選取其特性中最易掌握的部分;可以因為不正當?shù)恼Z法使用而產(chǎn)生問題(Syntax matters (often in perverse ways))削弱對預(yù)處理器的使用。
當然,這些規(guī)則要具體結(jié)合更多關(guān)于基本目標的上下文環(huán)境來考慮。應(yīng)該注意到的是,在“與C有較高的兼容性”、“不損失效率”以及“具有便捷的可用性來解決實際問題”這三個方面的要求,與在“完整的型別安全性”、“完全的通用性”以及“完善的抽象之美”這三個方面的要求形成對立。
C++從Simula中借鑒了用戶自定義型別(class,§4.1)和類層次機制。然而,在Simula及許多類似的語言中,其對用戶自定義型別的支持與其對內(nèi)建型別的支持存在著根本上的不同。#t#
例如,Simula中不允許在棧中為用戶自定義型別的對象分配空間,并且只允許通過指針(這在Simula中稱為引用——reference)來對這些對象進行訪問。而相反的,內(nèi)建型別的對象只在棧中被分配空間,不能在動態(tài)存儲區(qū)中分配,而且不能使用指針指向它。
這種在對待內(nèi)建型別與對待用戶自定義型別上的差異,暗示著對效率問題的嚴格考慮。比如,當作為一個在動態(tài)存儲區(qū)中被分配的對象之引用時,如果該對象屬于自定義型別(比如complex,§4.1),那么就會為運行期及空間帶來負荷;
而這些負荷在有些應(yīng)用中被認為是不可接受的。這些正是C++意欲涉足解決的問題。同時,在用法上的不同也決定了:不可能在范型程序設(shè)計中統(tǒng)一對待那些語義上近似的型別。在維護一個較龐大的程序時,一個程序員不可避免的會基于某些不完整的知識來對程序作一些修改,只關(guān)注全部程序代碼中的一小部分。

我們在微信上24小時期待你的聲音
解答本文疑問/技術(shù)咨詢/運營咨詢/技術(shù)建議/互聯(lián)網(wǎng)交流