參加你附近的 ,瞭解 VS Code 中的 AI 輔助開發。

重構 C++ 程式碼

Visual Studio Code 中的 C/C++ 擴充套件具有多種重構功能,可幫助您在不改變程式碼執行時行為的情況下,改善其結構、可讀性和可維護性。這些功能包括“提取方法”和“建立宣告和定義”等。

建立宣告或定義

透過讓 C/C++ 擴充套件為您生成函式的宣告或定義,簡化了建立過程。此功能適用於成員函式、作為類的名稱空間以及模板。

Create a definition and a declaration across two files

要建立函式宣告或定義,可以:

  • 選擇您的類函式定義,選擇“程式碼操作”(燈泡圖示),然後選擇建立宣告。同樣,要建立定義,請選擇函式宣告,選擇“程式碼操作”,然後選擇建立定義
  • 右鍵單擊函式的宣告或定義,然後從上下文選單中選擇建立定義/宣告。根據您的程式碼,將建立定義或宣告。
  • 選擇函式,然後使用命令面板 (⇧⌘P (Windows, Linux Ctrl+Shift+P)),並輸入命令建立宣告/定義。根據您的程式碼,將建立定義或宣告。

建立定義和宣告的位置取決於您在程式碼中已建立的模式。例如,如果您之前在同一檔案中添加了定義和宣告,則擴充套件也會將新的定義和宣告新增到該檔案中。函式順序會自動保持。

Create a definition and a declaration in the same file

如果您在不同於原始檔的檔案中定義了宣告或定義,擴充套件將遵循您的約定。例如,對於名稱匹配的標頭檔案和原始檔,即使標頭檔案尚未包含在原始檔中,兩者也會被識別。在這種情況下,一旦添加了宣告或定義,您的標頭檔案會自動在原始檔中被引用。

否則,擴充套件會為您建立一個與當前檔名匹配的新標頭檔案或原始檔。這個新檔案將包含已生成的新宣告或定義。然後,新檔案會自動在您當前的檔案中被引用。

對於模板,如果函式模板在標頭檔案中宣告,則該函式模板的定義將在同一標頭檔案中建立。這也適用於類模板的非模板成員函式。

複製宣告或定義

如果您想選擇將宣告或定義新增到程式碼中的位置,可以使用程式碼操作複製宣告/定義。這將把宣告或定義新增到剪貼簿,而不是直接新增到您的程式碼中。

要呼叫此程式碼操作,請選擇一個有可用“快速修復”的函式,然後選擇“程式碼操作”(燈泡圖示),並選擇複製“您的函式名”的定義複製“您的函式名”的宣告

Copy a declaration or definition

提取到方法

“提取方法”重構功能使您能夠將一段程式碼塊提取到一個單獨的方法中,以幫助提高程式碼的可讀性、減少重複,並使程式碼更加模組化。

要提取方法,請選擇您要提取的 C++ 程式碼,選擇程式碼操作(燈泡圖示),然後選擇提取到函式。或者,右鍵單擊程式碼並選擇重構 > 提取,或使用鍵盤命令 (Windows 上為 Ctrl + Shift + R, Ctrl + E) 獲取更多資訊。

然後,您可以為建立的新函式命名。包含您所選程式碼的新函式將被放置在當前函式的上方。

Extract Method and create declaration

快速修復/程式碼操作

C/C++ 擴充套件根據您的程式碼上下文提供 C/C++ 特定的建議,以幫助修復和改進您的 C++ 程式碼。您可以透過將滑鼠懸停在符號上並選擇 QuickFix 連結,或者透過選擇程式碼旁邊出現的程式碼操作(燈泡圖示)來檢視這些建議。例如,如果一段程式碼可以提取到方法中,選擇燈泡圖示將顯示“提取到方法”。除了上述功能外,C/C++ 擴充套件在以下情況下也提供快速修復/程式碼操作:

新增缺失的標頭檔案

如果您的 C++ 程式碼中存在未知符號,並且 C/C++ 擴充套件在您的工作區中識別出正確的標頭檔案,現在會有一個可用的快速修復。選擇該快速修復,必要的標頭檔案 include 將被新增到您當前 C++ 檔案的頂部。

Add Missing Include in code using a code action

後續步驟

繼續閱讀以瞭解:

如果您有任何其他問題或遇到任何困難,請在 GitHub 上提交問題。您可能會被要求提供擴充套件的日誌資訊以幫助診斷問題。有關提供擴充套件日誌的幫助,請參閱C/C++ 擴充套件日誌記錄