CLion 2025.2 Help

上移成员,下移成员

上移成员 ”重构允许您将类成员移动到基类。

下移成员 ”重构帮助您通过将类成员移动到子类来清理类层次结构。 然后,这些成员仅重新定位到直接子类中。

上移成员

  1. 选择要移动到超类的成员。

  2. 从主菜单或上下文菜单中调用 重构 | 上移成员

    上移成员
  3. 上移成员 对话框中,指定以下内容:

    • 选择超类。

    • 成员 部分中,选择要移动的成员。

      CLion 将突出显示依赖的成员:

      依赖的类成员
  4. 点击 预览 以在继续之前检查更改。 如果出现问题,CLion 会通知您:

    在上移成员过程中检测到的问题
  5. 请点击 拉取 完成准备。

示例

之前

之后

class BaseClass { int d1 = 0; static const int d2 = 1; }; class ChildClass: public BaseClass { char SomeChar = 'a'; long d22; void exFunc(int); //This method will be pulled up }; void ChildClass::exFunc(int) {};
class BaseClass { int d1 = 0; static const int d2 = 1; void exFunc(int); }; class ChildClass: public BaseClass { char SomeChar = 'a'; long d22; }; void BaseClass::exFunc(int) {};

之前

之后

@interface SampleClass:NSObject /* This method will be pulled up */ - (int)IntSum:(int)num1 andNum2:(int)num2; @end @implementation SampleClass - (int)IntSum:(int)num1 andNum2:(int)num2 { int result = num1 = num2; return result; } @end
@interface BaseClass : NSObject - (int)IntSum:(int)num1 andNum2:(int)num2; @end @interface SampleClass : BaseClass @end @implementation BaseClass - (int)IntSum:(int)num1 andNum2:(int)num2 { int result = num1 = num2; return result; } @end

之前

之后

class SuperClass: def super_method(self): pass class SubClassOne(SuperClass): # This function will be pulled up def my_method(self): pass
class SuperClass: def super_method(self): pass def my_method(self): pass class SubClassOne(SuperClass): pass

下移成员

  1. 选择要移动到子类的成员。

  2. 从主菜单或上下文菜单中调用 重构 | 向下推送成员

    下移成员
  3. 下移成员 对话框中,指定以下内容:

    • 继承者 部分中,选择子类。

    • 成员 部分中,选择要移动的成员。

  4. 点击 预览 以在继续之前检查更改。

  5. 请点击 推送 完成准备。

示例

之前

之后

class BaseClass { int d1 = 0; static const int d2 = 1; void exFunc(int); //This method will be pushed down }; class ChildClass: public BaseClass { char SomeChar = 'a'; long d22; }; void BaseClass::exFunc(int) {};
class BaseClass { int d1 = 0; }; class ChildClass: public BaseClass { char SomeChar = 'a'; long d22; static const int d2 = 1; void exFunc(int); }; void ChildClass::exFunc(int) {};

之前

之后

@interface Superclass : NSObject { int v; int w; //This variable will be pushed down } - (void)initV; @end @implementation Superclass - (void)initV { v = 20; } @end @interface Subclass : Superclass
@interface Superclass : NSObject { int v; } - (void)initV; @end @implementation Superclass - (void)initV { v = 20; } @end @interface Subclass : Superclass { int w; }

之前

之后

class SuperClass: # This function will be pushed down def super_method(self): pass class SubClassOne(SuperClass): def my_method(self): pass class SubClassTwo(SuperClass): def my_method(self): pass
class SuperClass: pass class SubClassOne(SuperClass): def my_method(self): pass def super_method(self): pass class SubClassTwo(SuperClass): def my_method(self): pass def super_method(self): pass
最后修改日期: 2025年 9月 26日