重构C++代码

Visual Studio Code 中的 C/C++ 扩展具有多种重构功能,可帮助您在不改变其运行时行为的情况下改进代码的结构、可读性和可维护性。这些功能包括提取方法和创建声明和定义等。

创建声明或定义

通过让C/C++扩展为您生成这些项目,简化创建函数声明或定义的过程。此功能适用于成员函数、命名空间作为类和模板。

在两个文件中创建定义和声明

要创建函数声明或定义,可以:

  • 选择你的类函数定义,选择代码操作(灯泡图标),然后选择创建声明。同样地,要创建定义,选择函数声明,选择代码操作,然后选择创建定义
  • 右键点击函数的声明或定义,然后从上下文菜单中选择创建定义/声明。根据你的代码,会创建一个定义或声明。
  • 选择函数,然后使用命令面板⇧⌘P (Windows, Linux Ctrl+Shift+P))并输入命令创建声明/定义。根据你的代码,将创建一个定义或声明。

定义和声明创建的位置基于您在代码中先前建立的模式。例如,如果您之前在同一文件中添加了定义和声明,扩展程序也会将新的定义和声明添加到同一文件中。函数顺序会自动维护。

在同一文件中创建定义和声明

如果您在源文件之外的不同文件中定义了声明或定义,扩展名将遵循您的约定。例如,对于具有匹配名称的头文件和源文件,即使头文件未包含在源文件中,两者也会被识别。在这种情况下,一旦添加了声明或定义,您的头文件将自动在源文件中被引用。

否则,扩展程序会为您创建一个与当前文件名称匹配的新头文件或源文件。这个新文件包含已生成的新声明或定义。然后,新文件会自动在当前文件中引用。

对于模板,如果在头文件中声明了一个函数模板,则该函数模板的定义也在同一个头文件中创建。这也适用于类模板的非模板成员函数。

复制声明或定义

如果你想选择在代码中添加声明或定义的位置,可以使用代码操作复制声明/定义。这将把声明或定义添加到剪贴板,而不是直接添加到你的代码中。

要调用代码操作,请选择一个具有快速修复功能的函数,然后选择代码操作(灯泡)并选择复制‘YourFunctionName’的定义复制‘YourFunctionName’的声明

复制声明或定义

提取到方法

提取方法重构功能使您能够将代码块提取到一个单独的方法中,以帮助提高代码的可读性,减少重复,并使代码更加模块化。

要提取一个方法,请选择您想要提取的C++代码,选择代码操作(灯泡),然后选择提取到函数。或者,右键单击代码并选择重构 > 提取或使用键盘命令(在Windows上为Ctrl + Shift + R, Ctrl + E)以获取更多信息。

然后,您可以命名新创建的函数。包含您所选代码的新函数将放置在当前函数的上方。

提取方法并创建声明

快速修复/代码操作

C/C++ 扩展提供了基于代码上下文的 C/C++ 特定建议,用于修复和改进您的 C++ 代码。您可以通过将鼠标悬停在符号上并选择 QuickFix 链接,或通过选择出现在代码旁边的代码操作(灯泡)来查看这些建议。例如,如果可以将一段代码提取到一个方法中,选择灯泡图标会显示“提取到方法”。除了上述功能外,C/C++ 扩展在以下情况下还提供了快速修复/代码操作:

添加缺失的头文件

如果在您的C++代码中存在未知符号,并且C/C++扩展在工作区中识别出正确的头文件,现在可以使用快速修复。选择快速修复,必要的头文件包含将被添加到当前C++文件的顶部。

使用代码操作添加缺失的包含

下一步

继续阅读以了解以下内容:

如果您有任何其他问题或遇到任何问题,请在GitHub上提交问题。您可能会被要求提供扩展的日志信息以帮助诊断问题。有关提供扩展日志的帮助,请参阅C/C++扩展日志