CLion 可以将类内方法定义移到类外吗?

问题描述 投票:0回答:1

共同背景优先。在 C++ 中,您可以在类主体内部编写方法定义,如以下有效 C++ 风格的

Widget
类所示:

class Widget {
  unsigned TheSize;
public:
  unsigned getSize() const { return TheSize; }
};

我知道这种时尚也被称为“类内定义”,它是隐式的“inline”(无需用关键字告诉编译器)。另一方面,您可以将方法写在类之外,显式限定其名称,例如:


class Widget { unsigned TheSize; public: unsigned getSize() const; }; unsigned Widget::getSize() const { return TheSize; }

现在问题来了。我想使用 JetBrains 为 C/C++ 制作的新 IDE 
CLion

,将一些以 in-the-class 方式编写的类转换为 out-of-class 方式。我想知道这个漂亮的 IDE 是否为这种重构提供内置支持。我看不到它有一个名为 Pull Inline Method Out of Class 的重构,尽管它确实有相反的 Inline Method 重构工具。

编辑:

我正在使用的 CLion 版本: CLion 2018.3.1 Build #CL-183.4588.63, built on December 4, 2018 Licensed to CLion Evaluator Expiration date: January 10, 2019 JRE: 1.8.0_152-release-1343-b16 amd64 JVM: OpenJDK 64-Bit Server VM by JetBrains s.r.o Linux 4.15.0-42-generic


c++ clion member-functions
1个回答
0
投票
New -> C/C++ Source File

(与 .hpp 文件同名,但这不是强制性的),并勾选了

Add to target
。然后我将头文件包含在源文件中。之后,当我将光标放在方法名称上,点击
Alt + Enter
,然后选择
Split function into declaration and definition
时,它只在头文件中留下声明,并自动将定义移动到源文件中。
(哦,这对模板类不起作用。)

© www.soinside.com 2019 - 2024. All rights reserved.