类方法在C ++中等效

时间:2011-12-20 01:56:20

标签: c++ objective-c class function methods

C ++中是否有类方法? 我知道在Objective-C中我们可以通过+ (void)aClassFunction;在头文件中声明一个函数,我们可以通过[myClass aClassFunction];调用它。有没有办法在C ++中执行此操作?

3 个答案:

答案 0 :(得分:6)

static方法足够接近(但不是真正等效)替代Objective C的类方法。区别在于在C ++中你不能覆盖静态方法。

答案 1 :(得分:1)

是的,请使用static

class MyClass {
public:
    static int classFunc() { return 45; }
};

cout << MyClass::classFunc() << endl;

您可以看到您通过类名称后跟范围解析运算符::,然后是函数名称来访问它们。

答案 2 :(得分:1)

是的,使用静态方法。

在.h文件中声明一个静态方法,如下所示:

static void DoSomething();

在.cpp中实现它,如下所示:

void SomeClass::DoSomething()
{
    /* do something */
}

然后这样称呼:

SomeClass::DoSomething();