Aur*_*ius 7 c++ oop reusability
这里有一个风格问题.假设我有一个类A,它必须对其成员变量执行一系列相当复杂的事情B b
class A {
public:
void DoStuffOnB(){
DoThing1();
DoThing2();
DoThing3();
}
private:
B b;
void DoThing1(){ /* modify b */ }
void DoThing2(){ /* modify b */ }
void DoThing3(){ /* modify b */ }
};
Run Code Online (Sandbox Code Playgroud)
其中DoThings功能仅依赖于b(或其它成员变量和一些传递的参数).如果我想让这些函数在将来可以在该类之外重用,我最好把它们写成:
class A {
public:
void DoStuffOnB(){
DoThing1(b);
DoThing2(b);
DoThing3(b);
}
private:
B b;
void DoThing1(B& b){ /* modify b */ }
void DoThing2(B& b){ /* modify b */ }
void DoThing3(B& b){ /* modify b */ }
};
Run Code Online (Sandbox Code Playgroud)
然后我的DoThing功能可以在将来的其他地方复制.我最好编写函数来获取所有相关参数,或者该函数是否只采用非成员参数?
如果答案是"你应该编写函数来获取所有相关参数",为什么还要把它放在一个类中呢?
什么时候应该使用免费功能,何时使用会员功能?
从上下文中假设“在 B 上执行某些操作”函数仅对成员进行操作B,而不是对其他状态进行操作A:
B那么它们应该是 的成员B。| 归档时间: |
|
| 查看次数: |
3366 次 |
| 最近记录: |