任何函数对象的最佳实践

时间:2014-07-02 23:58:27

标签: c++

是否有最佳实践来实例化没有数据成员(或最小)的类对象。

我的意思是,我有一个具有几个常用功能的类,可以在代码中的许多地方广泛使用。所以,我可以,

  • 在类的顶部实例化该类,通过引用将其传递给其他对象,并在对象中保留该引用需要该函数,并使用该引用调用方法。
  • 在堆栈处实例化该类,然后调用该方法。
  • 在每个需要该函数的对象上实例化该类,并使用该对象调用方法。

由于这些类没有数据成员,因此对象的大小会很小,对吧?

有关通用实践的想法,嵌入式软件的性能和易维护性吗?

最诚挚的问候, 布拉克

2 个答案:

答案 0 :(得分:1)

如果没有成员,那么为什么你想要把它包装在一个课程中没有什么理由。 IMO这是一个很糟糕的习惯,只是为了它而把类中的所有内容包装起来,类是针对对象的。把它放在一个类中传达意图,如果你没有成员,你应该把它作为一个自由函数。我们已经有了命名空间,所以如果有意义的话,将它粘贴在子命名空间中或者只是将它作为你选择的命名空间中的自由函数都没有错。

答案 1 :(得分:0)

我认为最好的做法是将所有成员函数声明为'static',而不对该类进行任何实例化。

例如:

class StringUtil {
  public:
    static std::string ToString(const AnyClass& target);
};

void f() {
    AnyClass a;
    std::cout << "a: " << StringUtil::ToString(a) << std::endl;
}