0.2 c++中的類和物件結構體
0.3 c++程式的編譯執行
0.4 標頭檔案和命名空間
0.5 輸入和輸出
0.6 變數定義位置
0.7 bool變數
0.8 new和delete
0.9 c和c++混合程式設計
c++是在c的基礎上增加物件導向的內容c++支援面向過程,物件導向,泛型程式設計,而c語言僅僅支援面向過程
面向過程
物件導向
泛型程式設計
c語言的專案組織方式:
重複使用或具有某項功能的**封裝為乙個函式,相關功能的函式聚集在乙個原始檔內,提供標頭檔案後,就是乙個模組。c++的專案組織方式:
將相關聯的函式和變數封裝在乙個類中,將乙個類或者多個類封裝在乙個原始檔中。物件導向程式設計在**執行效率上絕對沒有任何優勢,它的主要目的是方便程式設計師組織和管理**,快速梳理程式設計思路,帶來程式設計思想上的革新。相比c語言,增加一層類的封裝。
c和c++的專案組織方式
類是圖紙,不佔記憶體空間。
物件的實際的產品,占用記憶體空間。
c結構體:只能包含屬性,不能包含函式
c++結構體:包含屬性,包含函式,訪問許可權和繼承方式預設公有,不可表示模板型別c++類:包含屬性,包含函式,訪問許可權和繼承方式預設私有,可以表示模板型別c++的編譯執行過程
編譯器microsoft visual c++
gcc(gnu c++)
borland c++
unix
字尾cpp、cxx、cc
cpp、cxx、cc、c++、c
cppc、cc、cxx
1.gcc命令
2.g++命令
g++命令用於專門編譯c++程式
新版c++標頭檔案(擁有命名空間概念,官方標準):iostream,fsteam 計畫重新編寫庫,將類、函式、巨集等都統一納入乙個命名空間,這個命名空間的名字就是std
。std 是 standard 的縮寫,意思是「標準命名空間」。
語法格式:包含(變數,函式,類,typedef,def)等內容
namespace name
變數使用作用範圍c++ 和 c 可以進行混合程式設計。但需要注意的是,由於 c++ 和 c 在程式的編譯、鏈結等方面都存在一定的差異,而這些差異往往會導致程式執行失敗。
解決方法:通過相同的標準對**進行編譯
使用**extern 「c」**關鍵字修飾:
#ifdef __cplusplus
extern "c" void display();
#else
void display();
#endif
當 myfun.h 被引入到 c++ 程式中時,會選擇帶有 extern 「c」 修飾的 display() 函式;反之如果 myfun.h 被引入到 c 語言程式中,則會選擇不帶 extern 「c」 修飾的 display() 函式。由此,無論 display() 函式位於 c++ 程式還是 c 語言程式,都保證了 display() 函式可以按照 c 語言的標準來處理。 Linux Kernel 程序管理0 引言
感覺還沒開始呢,就要結束了 一轉眼怎麼就到了找實習找工作的日子,身邊的同學各種忙著刷oj。迫於壓力,我也扔下了手頭的事情,一口氣刷了leetcode上的好多題目,結果發現刷題真的有用,現在的筆試面試很多都是老掉牙的演算法題,只要你刷過,那你一定就行。記得上次跟乙個刷題無數的同學聊天,他說面試官題目還...
macOS上的彙編入門(一) 引言
我最近乙個階段都在學習組合語言,但是,當我想使用我的mac編寫組合語言的時候,發現了許多問題。比如說,大多數實體的教材都採用的是32位甚至是16位的處理器,在如今僅支援64位架構的macos 10.15上根本不能原生執行 再者,基於xnu這種類unix核心的macos系統,組合語言的部分細節,如系統...
談表示式樹的快取(1) 引言
表示式樹 expression tree 是.net 3.5中引入的一種表達方式。表示式樹的運用十分廣泛,可以直觀地表現出各種 資料 甚至 邏輯 和 行為 再者,表示式樹是強型別的,因此合理地使用這個新特性可以讓 編寫變得優雅,方便。乙個最簡單而常見的例子便是,某些朋友目前就已經喜歡使用表示式樹來代...