动态

详情 返回 返回

“c++”基本介紹與講解 - 动态 详情

1,什麼是“c++”?

C++的發展歷程是一個不斷演進和完善的過程,以下是其主要發展階段:

  • 起源(1979–1985):1979年,Bjarne Stroustrup在貝爾實驗室開始給C加入類,受Simula面向對象思想影響,用於系統編程和網絡仿真,最初稱為“C with Classes”。1983年,語言名字正式變為C++,象徵在C基礎上“自增”,此時具備了class、inline、//註釋、函數重載等關鍵特性。1985年,《The C++ Programming Language》第一版出版,成為C++的事實標準。
  • 工具化與語言成型(1985–1990):這一時期主要通過Cfront編譯器以源碼到源碼(C)轉換方式實現C++。期間加入了虛函數、繼承、多重繼承、const、引用、運算符重載、模板等特性。但由於沒有正式標準,導致編譯器方言多,兼容性碎片化。
  • 標準化前夜(1990–1998):早期模板使用有侷限,不同編譯器實現差異大。1994年-1998年,ANSI/ISO標準委員會(WG21)開展相關工作,Alexander Stepanov的STL被整合,確立了容器+迭代器+算法的泛型編程範式。
  • 第一個ISO標準的奠基(1998–2003):1998年,C++98標準發佈,形成“經典C++”,包含了類、繼承、多態、異常、模板等特性,RAII模式被確認為推薦的資源管理方式。2003年發佈的C++03標準主要是對C++98的缺陷修訂,無重大語義新特性。
  • 革命性轉折:C++11(2011年):被稱為“Modern C++”的起點,核心目標是性能不降、表達力增強、保持零開銷抽象。新增了移動語義與右值引用、auto類型推導、Lambda表達式、智能指針、標準併發庫等特性,使C++的寫法發生了重大變化。
  • 增量迭代:C++14(2014年):對C++11進行了完善,引入了泛型lambda、變量模板、返回類型推導等特性,口號是“Complete C++11”。
  • 工程友好提升:C++17(2017年):增加了if/switch帶初始化、結構化綁定、inline變量等特性,引入了std::optional、std::variant等新庫,更關注語義表達和零拷貝視圖等,同時移除了tr1、舊的auto_ptr等。
  • 現代語言完成度飛躍:C++20(2020年):被視為C++的第二次質變,引入了Concepts、Ranges庫、Coroutines、Modules等重要特性,增強了constexpr,提升了錯誤信息可讀性和接口語義。
  • 工具性增強:C++23(2023年):對Ranges進行了擴展,增加了std::expected用於錯誤處理,加強了對constexpr動態內存的支持,還引入了文本格式化std::print等特性。

未來,C++還將朝着靜態反射、統一異步模型、網絡庫標準化等方向繼續演進。

基本語法

C++ 基本語法圍繞“程序結構、數據類型、控制流、函數”四大核心,以下是最關鍵的基礎要素:

一、程序基本結構(Hello World 示例)

所有 C++ 程序需包含 主函數  main() (程序入口),且代碼需通過頭文件引入依賴庫。

基本結構

cpp
’’’

// 1. 引入頭文件(輸入輸出庫)

include <iostream>

// 2. 使用標準命名空間(避免重複寫 std::)

using namespace std;

// 3. 主函數(程序唯一入口,返回 0 表示正常結束)

int main() {

// 4. 輸出語句(cout 用於輸出,<< 是流插入運算符)
cout << "Hello, C++!" << endl; 
return 0; // 主函數返回值(可省略,C++11 後默認返回 0)

}
 
’’’

核心基本語法

1. 註釋(不參與編譯,用於説明代碼)

  • 單行註釋: // 這是單行註釋 
  • 多行註釋: / 這是多行註釋,可跨越多行
  1. 數據類型(存儲不同類型的數據)

C++ 數據類型分“基本類型”和“複合類型”,常用基本類型如下:

表格

類型 説明 示例
 int  整型(4字節,存整數)  int age = 20; 
 double  雙精度浮點型(存小數)  double score = 95.5; 
 char  字符型(1字節,存單個字符)  char ch = 'A'; 
 bool  布爾型(存 true/false)  bool isPass = true; 
 string  字符串型(需引入  <string>  頭文件)  string name = "Tom"; 

3. 變量與常量

  • 變量:值可修改,聲明格式  類型 變量名 = 初始值; (初始值可選,建議初始化)
    -
    示例: int num = 10; num = 20; (後續可修改值)
  • 常量:值不可修改,兩種聲明方式:
  •  const 類型 常量名 = 值; (常用): const double PI = 3.1415; 
  •  #define 常量名 值 (預處理指令,無類型): #define MAX 100 
  1. 控制流(控制代碼執行順序)
  • 條件判斷: if-else  /  switch 
    示例(if-else):
    cpp

int a = 5;
if (a > 3) {

cout << "a 大於 3" << endl;

} else {

cout << "a 小於等於 3" << endl;

}
 

  • 循環: for (固定次數) /  while (條件滿足時循環) /  do-while (至少執行一次)
    示例(for 循環輸出 1-5):
    cpp

for (int i = 1; i <= 5; i++) { // 初始化;循環條件;更新變量

cout << i << " ";

}
 

  1. 函數(代碼複用單元,需“聲明+定義”)
  • 聲明:告訴編譯器函數的“類型、名、參數”,通常在頭文件或代碼頂部
    示例: int add(int x, int y); (聲明一個返回 int、接收兩個 int 參數的函數)
  • 定義:實現函數邏輯
    示例:
    cpp

// 函數定義(實現加法)
int add(int x, int y) {

return x + y; // 返回計算結果

}

// 主函數中調用
'''
int main() {

int sum = add(3, 5); // 調用 add,sum 得到 8
cout << sum << endl;
return 0;

}
'''

三、關鍵語法規則

語句必須以 分號  ;  結尾(函數體、代碼塊用  {}  包裹,內部語句需分號)。

區分大小寫( main  和  Main  是兩個不同的名字)。

命名規則:變量/函數名由“字母、數字、下劃線”組成,不能以數字開頭,不能用關鍵字(如  int 、 if )。

3,和python的不同點

C++ 與 Python 的核心差異體現在 執行方式、類型機制、語法風格、性能與適用場景 上,以下是關鍵區別的對比:

  1. 執行方式:編譯型 vs 解釋型
  • C++:編譯型語言。代碼需通過編譯器(如 GCC、Clang)編譯成機器碼,生成可執行文件後才能運行,編譯過程會提前檢查錯誤。
  • Python:解釋型語言。代碼無需編譯,由解釋器(如 CPython)逐行讀取並實時執行,無需生成獨立可執行文件,啓動快但運行中可能暴露錯誤。
  1. 類型機制:靜態類型 vs 動態類型
  • C++:靜態類型。變量聲明時必須指定數據類型(如  int a; ),類型在編譯期固定,不可動態修改,編譯器會提前做類型校驗,減少運行時錯誤。
  • Python:動態類型。變量無需聲明類型(如  a = 5 ),類型由賦值的值決定,且可動態改變(如  a = "hello"  可直接修改  a  的類型),類型錯誤僅在運行時暴露。
  1. 內存管理:手動 vs 自動
  • C++:手動管理。需通過  new  手動分配內存、 delete  手動釋放內存,若忘記釋放會導致內存泄漏,需開發者關注內存生命週期(現代 C++ 可通過智能指針  shared_ptr  簡化)。
  • Python:自動管理。內置垃圾回收(GC)機制,會自動識別並釋放不再使用的內存,開發者無需手動操作,降低內存管理成本。
  1. 語法風格:嚴謹繁瑣 vs 簡潔靈活

表格

對比維度 C++ 特點 Python 特點

代碼結構 必須有  main()  函數作為入口,語句需以  ;  結尾 無強制入口函數,語句無需

分號,靠縮進區分代碼塊

函數定義 需聲明返回類型和參數類型(如  int add(int x) ) 無需聲明類型(如  def

add(x): ),返回類型由內容決定

類與面向對象 需顯式定義  class ,支持多重繼承、虛函數等複雜特性 同樣支持

 class ,語法更簡潔,默認單繼承,特性更輕量化

示例(打印)  cout << "Hello" << endl; (需引入  <iostream> )

print("Hello") (無需引入庫,直接使用)

5. 性能:高性能 vs 中低性能

大標題

  • C++:性能接近硬件極限。編譯為機器碼直接運行,無解釋器開銷,且支持指針、內存直接操作,適合對速度和資源佔用敏感的場景(如遊戲引擎、嵌入式)。
  • Python:性能較低。解釋執行+動態類型帶來額外開銷,運行速度通常是 C++ 的 50-100 倍慢,需通過調用 C/C++ 擴展(如 NumPy)提升性能。
  1. 適用場景:底層/高性能 vs 快速開發/腳本化
  • C++:適合 底層開發、高性能場景,如操作系統內核、遊戲引擎、嵌入式設備、高頻交易系統、工業軟件等。
  • Python:適合 快速開發、腳本化場景,如數據分析(Pandas/NumPy)、人工智能(TensorFlow/PyTorch)、Web 後端(Django/Flask)、自動化腳本、日常工具開發等
user avatar u_17494575 头像 u_17353607 头像 u_16231477 头像 u_15505879 头像 u_17467352 头像 donnytab 头像 yangy5hqv 头像 yanyingjie 头像 lu_lu 头像 codists 头像 aipaobudefanqie 头像 downtoearth 头像
点赞 17 用户, 点赞了这篇动态!
点赞

Add a new 评论

Some HTML is okay.