【问题标题】:What is standalone function? [duplicate]什么是独立功能? [复制]
【发布时间】:2012-10-09 06:58:22
【问题描述】:

可能重复:
What is the meaning of the term “free function” in C++?

我不确定什么是独立函数。

是在类内还是在main和类外和普通函数一样?

【问题讨论】:

  • 这不是一个正式的术语。我们有一个合理的想法,但我们可能会称它为 free 函数。

标签: c++


【解决方案1】:

独立函数只是一个普通函数,它不是任何类的成员,并且位于全局命名空间中。例如,这是一个成员函数:

class SomeClass
{
public:
    SomeClass add( SomeClass other );
};
SomeClass::add( SomeClass other )
{
    <...>
}

这是一个独立的:

SomeClass add( SomeClass one, SomeClass two );

【讨论】:

  • 所以独立函数类型必须是类?或者像普通函数一样,你可以命名任何东西并从 main 获取数据?
  • @Rex,不,它可以是任何东西,这只是一个随机的例子;)
【解决方案2】:

一个独立的函数通常是

  • 不属于任何classnamespace 的全局函数。
  • 服务于做某事的单一目的(如实用程序,例如strcpy()

应该明智地使用它们,因为太多会使代码混乱。

【讨论】:

    【解决方案3】:

    独立函数是不依赖于任何可见状态的函数:

    int max(int a, int b) { return a > b ? a : b; }
    

    这里的max 是一个独立的函数。

    独立函数是无状态的。在 C++ 中,它们被称为 free 函数。

    【讨论】:

      猜你喜欢
      • 2013-01-02
      • 1970-01-01
      • 2012-09-18
      • 2018-10-27
      • 2020-01-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-03-14
      相关资源
      最近更新 更多