Сначала идет общий фон. В C++ вы можете написать определение метода прямо внутри тела класса, как показано в следующем классе Widget
в стиле Effective-C++:
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;
}
Теперь возникает вопрос. Я хочу преобразовать некоторые классы, написанные в стиле в классе, в стиль внеклассный, используя CLion, новую среду IDE, созданную JetBrains для C / C++. Интересно, обеспечивает ли эта красивая 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
@MaximBanaev Хороший выстрел! Это именно то, что я ищу! Работает очень хорошо.
Очень мило @MaximBanaev! Вы должны дать ответ!
Привет @cgsdfc. Теперь точно обо всем классе, но если вы поместите курсор на какой-либо метод класса и нажмете
alt+enter
, вы можете вызвать действиеSplit function into declaration and definition