cgs*_*dfc 5 c++ member-functions clion
共同背景优先。在 C++ 中,您可以在类主体内部编写方法定义,如以下有效 C++ 样式的Widget类所示:
class Widget {
unsigned TheSize;
public:
unsigned getSize() const { return TheSize; }
};
Run Code Online (Sandbox Code Playgroud)
我知道这种方式也称为类内定义,它是inline隐式的(无需用关键字告诉编译器)。另一方面,您可以在类之外编写方法,显式限定其名称,例如:
class Widget {
unsigned TheSize;
public:
unsigned getSize() const;
};
unsigned Widget::getSize() const {
return TheSize;
}
Run Code Online (Sandbox Code Playgroud)
现在问题来了。我想使用CLion(JetBrains 为 C/C++ 制作的新 IDE)将一些以类内方式编写的类转换为类外方式。我想知道这个漂亮的 IDE 是否为这种重构提供内置支持。我看不到它有一个名为“将内联方法拉出类”的重构,尽管它确实有相反的内联方法重构工具。
编辑:我正在使用的 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
Run Code Online (Sandbox Code Playgroud)
小智 0
正如@MaximBanaev 在评论中所说。我发现无法将所有定义移至 .cpp 文件中。所以,我所做的是,我创建了一个New -> C/C++ Source File(与 .hpp 文件同名,但不是强制性的)并Add to target勾选了。然后我将头文件包含在源文件中。之后,当我将光标放在方法名称上,点击Alt + Enter,然后选择 时Split function into declaration and definition,它只在头文件中留下声明,并自动将定义移动到源文件中。
(哦,这对模板类不起作用。)