🚀 在 VS Code 中

重構 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

如果您在與原始碼檔案不同的檔案中定義宣告或定義,則擴充功能會遵循您的慣例。例如,對於具有相符名稱的標頭檔和原始碼檔案,即使標頭檔尚未包含在原始碼檔案中,也會識別出這兩個檔案。在這種情況下,一旦新增宣告或定義,您的標頭檔就會自動在您的原始碼檔案中參考。

否則,擴充功能會為您建立一個新的標頭檔或原始碼檔案,其名稱與您目前的檔案名稱相符。這個新檔案包含已產生的新宣告或定義。然後,新的檔案會自動在您目前的檔案中參考。

對於範本,如果函式範本在標頭檔中宣告,則該函式範本的定義會在相同的標頭檔中建立。這也適用於類別範本的非範本成員函式。

複製宣告或定義

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

若要叫用程式碼動作,請選取具有可用快速修正的函式,然後選取程式碼動作 (燈泡) 並選擇複製 'YourFunctionName' 的定義複製 'YourFunctionName' 的宣告

Copy a declaration or definition

提取到方法

「提取方法」重構功能可讓您將程式碼區塊提取到個別的方法中,以協助改善程式碼可讀性、減少重複並使程式碼更模組化。

若要提取方法,請選取您要提取的 C++ 程式碼,選取程式碼動作 (燈泡),然後選取提取到函式。或者,以滑鼠右鍵按一下程式碼,然後選取重構 > 提取,或使用鍵盤命令 (Ctrl + Shift + R, Ctrl + E 在 Windows 上) 以取得更多資訊。

然後,您可以命名已建立的新函式。包含您選取程式碼的新函式會放在目前函式的上方。

Extract Method and create declaration

快速修正/程式碼動作

C/C++ 擴充功能會根據您的程式碼內容,提供有關如何修正和改善 C++ 程式碼的 C/C++ 特定建議。您可以將滑鼠游標停留在符號上方並選取 快速修正 連結,或選取程式碼動作 (燈泡,顯示在程式碼旁邊) 來檢視這些建議。例如,如果程式碼區段可以提取到方法中,則選取燈泡圖示會顯示「提取到方法」。除了上述功能外,C/C++ 擴充功能還在下列情況下提供快速修正/程式碼動作

新增遺失的標頭檔

如果您的 C++ 程式碼中有不明符號,而 C/C++ 擴充功能識別出工作區中的正確標頭檔,則現在有可用的快速修正。選取快速修正,必要的標頭檔 include 將會新增至您目前 C++ 檔案的頂端。

Add Missing Include in code using a code action

後續步驟

繼續閱讀以瞭解

如果您有任何其他問題或遇到任何問題,請在 GitHub 上提交問題。系統可能會要求您提供擴充功能的記錄資訊,以協助診斷問題。請參閱 C/C++ 擴充功能記錄,以取得有關提供擴充功能記錄的說明。