上移成员,下移成员
“ 上移成员 ”重构允许您将类成员移动到基类。
“ 下移成员 ”重构帮助您通过将类成员移动到子类来清理类层次结构。 然后,这些成员仅重新定位到直接子类中。
上移成员
选择要移动到超类的成员。
从主菜单或上下文菜单中调用 。

在 上移成员 对话框中,指定以下内容:
选择超类。
在 成员 部分中,选择要移动的成员。
CLion 将突出显示依赖的成员:

点击 预览 以在继续之前检查更改。 如果出现问题,CLion 会通知您:

请点击 拉取 完成准备。
示例
之前 | 之后 |
|---|---|
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
|
下移成员
选择要移动到子类的成员。
从主菜单或上下文菜单中调用 。

在 下移成员 对话框中,指定以下内容:
在 继承者 部分中,选择子类。
在 成员 部分中,选择要移动的成员。
点击 预览 以在继续之前检查更改。
请点击 推送 完成准备。
示例
之前 | 之后 |
|---|---|
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日