简短回答:在命名空间中使用函数。
namespace foo
{
int f1(param1, param2);
void f2(param1, param2);
}
然而,如果您的应用程序具有面向对象的设计,您应该问自己为什么需要一堆只是操作输入参数的函数。相信我:您的代码试图告诉您某些事情 :-)
在您的代码片段中,您使用了虚拟名称(foo、f1、f2、param1、param2),因此我无法猜测您的函数是做什么的。但也许您的函数操作相同的参数:在这种情况下,您可以将该参数提升为类。
之前:
bool IsLeapYear( int date );
void IncrementDay( int date, int numOfDays );
之后:
class Date
{
public:
bool IsLeapYear() const;
void IncremetDay( int numOfDays );
private:
int daysFromOrigin;
};
如果您的函数需要不同的参数,那么您可以考虑将这些函数分配到现有的类中(前提是您确实需要面向对象的设计)。
最后,如果您的函数没有关联性,您可以考虑将它们移动到现有的类中,甚至作为静态方法(这取决于函数的含义)。
至于您的最后一个问题“这是一个好的设计吗?”,嗯,这取决于您正在开发的设计:
- 面向对象设计:可能不是一个好的面向对象设计,但是如果没有更多的上下文,很难说。
- 过程式设计:可以接受。
- 函数式设计:可以接受。
虽然这可能或可能不是根据您的范例一个好的设计,但肯定不是一个好的 C++ 习惯:您应该在命名空间内使用自由函数而不是仅具有静态方法的类。