0 引言 C和C 的區別

2021-10-20 21:33:02 字數 2007 閱讀 4828

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中引入的一種表達方式。表示式樹的運用十分廣泛,可以直觀地表現出各種 資料 甚至 邏輯 和 行為 再者,表示式樹是強型別的,因此合理地使用這個新特性可以讓 編寫變得優雅,方便。乙個最簡單而常見的例子便是,某些朋友目前就已經喜歡使用表示式樹來代...