現(xiàn)代C程序設計語言教程_第1頁
現(xiàn)代C程序設計語言教程_第2頁
現(xiàn)代C程序設計語言教程_第3頁
現(xiàn)代C程序設計語言教程_第4頁
現(xiàn)代C程序設計語言教程_第5頁
已閱讀5頁,還剩100頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

第 1 章 邁向現(xiàn)代 C++第 1 章 邁向現(xiàn)代 C++現(xiàn)代C++教程高速上手C++11/14/17/20目錄第 1 章 邁向現(xiàn)代 C++第 2 章 語言可用性的強化第 3 章 語言運行期的強化第 4 章 容器第 5 章 智能指針與內存管理第 6 章 正則表達式第 7 章 并行與并發(fā)第 8 章 文件系統(tǒng)第 9 章 其他雜項第 10 章 展望:C++20 第 1 章 邁向現(xiàn)代 C++編譯環(huán)境:本書將使用 clang++ 作為唯一使用的編譯器,同時總是在代碼中使用 -std=c++2a 編譯標志。編譯標志。1.>clang++ -v2.AppleLLVMversion10.0.1 (clang-100)3.Target:x86_64-apple-darwin18.6.04.Threadmodel:posix5.InstalledDir: /Library/Developer/CommandLineTools/usr/bin1.1 被棄用的特性在學習現(xiàn)代 C++ 之前,我們先了解一下從 C++11 開始,被棄用的主要特性:注意:棄用并非徹底不能用,只是用于暗示程序員這些特性將從未來的標準中消失,應該盡量避免使用。但是,已棄用的特性依然是標準庫的一部分,并且出于兼容性的考慮,大部分特性其實會『永久』保留。還有一些其他諸如參數(shù)綁定(C++11 提供了 std::bind 和 std::function )、 export 等特性也均被棄用。前面提到的這些特性如果你從未使用或者聽說過,也請不要嘗試去了解他們,應該向新標準靠攏,直接學習新特性。畢竟,技術是向前發(fā)展的。1.2 與 C 的兼容性出于一些不可抗力、歷史原因,我們不得不在 C++ 中使用一些 C 語言代碼(甚至古老的 C 語言代碼),例如 Linux 系統(tǒng)調用。在現(xiàn)代 C++ 出現(xiàn)之前,大部分人當談及『C 與 C++ 的區(qū)別是什么』時,普遍除了回答面向對象的類特性、泛型編程的模板特性外,就沒有其他的看法了,甚至直接回答『差不多』,也是大有人在。圖 1.2 中的韋恩圖大致上回答了 C 和 C++ 相關的兼容情況。從現(xiàn)在開始,你的腦子里應該樹立『C++ 不是 C 的一個超集』這個觀念(而且從一開始就不是,后面的進一步閱讀的參考文獻中給出了 C++98 和 C99 之間的區(qū)別)。在編寫 C++ 時,也應該盡可能的避免使用諸如 void* 之類的程序風格。而在不得不使用 C 時,應該注意使用 extern "C" 這種特性,將 C 語言的代碼與 C++代碼進行分離編譯,再統(tǒng)一鏈接這種做法,例如:33.4.SOURCE_C=foo.c5.OBJECTS_C=foo.o6.7.SOURCE_CXX= 1.1.cpp8.9.TARGET= 1.110.LDFLAGS_COMMON= -std=c++2a11.12.all:13.$(C) -c$(SOURCE_C)14.$(CXX)$(SOURCE_CXX)$(OBJECTS_C)$(LDFLAGS_COMMON) -o$(TARGET)15.clean:16.rm-rf*.o$(TARGET)注意: Makefile 中的縮進是制表符而不是空格符,如果你直接復制這段代碼到你的編輯器中,制表符可能會被自動替換掉,請自行確保在 Makefile 中的縮進是由制表符完成的。如果你還不知道 Makefile 的使用也沒有關系,本教程中不會構建過于復雜的代碼,簡單的在命令行中使用 clang++ -std=c++2a 也可以閱讀本書。如果你是首次接觸現(xiàn)代 C++,那么你很可能還看不懂上面的那一小段代碼,即:11.[out=std::ref(std::cout<< "ResultfromCcode:" <<add(1, 2))](){2.out.get() << ".\n";3.}();不必擔心,本書的后續(xù)章節(jié)將為你介紹這一切。返回目錄 | 上一章 | 下一章 語言可用性強化進一步閱讀的參考文獻C++C++\h 語言導\h學.BjarneStroustru\hpC++\h \h歷\h史C++\h 特性\h在GCC/Clang\h 等編譯器中的支持情\h況C++98\h \h與C99\h 之間的區(qū)\h別許可本書系\h歐長坤著,采用\h知識共享署名\h-\h非商業(yè)性使用\h-\h禁止演繹\h 4.0 \h國際許可協(xié)議\h

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論