gpt4 book ai didi

c++ - 使用非成员函数是一种好习惯吗?

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:09:12 26 4
gpt4 key购买 nike

假设我有一个类,其中有多个具有相似逻辑的函数。由于我不想重复自己,所以我将类似的逻辑提取到一个函数中。如果 similarLogic 不使用任何类成员,那么将其作为非成员函数是一种好习惯吗?或者有更好的方法吗?

请注意,在我的例子中,similarLogic 函数严格特定于 MyClass,因此不会在它之外的任何地方使用。

非成员函数示例:

MyClass.h

class MyClass {
public:
int func1();
int func2();
};

MyClass.cpp

int similarLogic(int p_num){
return 5 + p_num;
}

int MyClass::func1() {
return similarLogic(1);
}

int MyClass::func2() {
return similarLogic(2);
}

最佳答案

就我个人而言,我会在 MyClass.cpp 内的匿名命名空间 中编写similarLogic。这样,它在翻译单元之外是不可见的:

namespace {
int similarLogic(int p_num){
return 5 + p_num;
}
}

其他方法,例如类的 private 成员(static 或其他)会污染类定义。但这并不意味着该方法是一个糟糕的选择。如果该函数将来需要类成员数据,那么重构会比我喜欢的方式更简单。

无论您最终做什么,污染全局 命名空间都是不可取的。

关于c++ - 使用非成员函数是一种好习惯吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57923553/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com