2011-12-20 251 views
0

C++中是否存在与类方法等价的方法? 我知道在Objective-C中,我们可以在头部声明一个函数+ (void)aClassFunction;,我们可以通过[myClass aClassFunction];来调用它。有没有办法在C++中做到这一点?C++中的等价类方法

回答

1

是,使用static

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

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

你可以看到你通过类名,后跟范围解析操作,::,后跟函数的名称来访问它们。

+0

这是不一样的。你不能像Objective-C – user102008 2012-05-31 20:48:55

6

static方法是足够接近(但不是等同的)替代目标C的类方法。区别在于,在C++中,您不能覆盖静态方法。

+0

那样使用在运行时计算出来的类“不同的是,在C++中,你不能重载静态方法。”你指出的重要通知;) – Geoffroy 2011-12-20 01:59:51

+0

所以你说我可以用静态函数创建一个类并创建它的一个子类,但无法更改该函数? – 2011-12-20 02:01:44

+0

@ChaseWalden静态(“类”)函数不会被继承。 – 2011-12-20 02:14:12

1

是的,使用静态方法。

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

然后调用它像这样:

SomeClass::DoSomething(); 

static void DoSomething(); 

它在.cpp这样实现:

在.h文件中这样声明一个静态方法

+0

这是不一样的。你不能像在Objective-C中那样使用在运行时计算的类 – user102008 2012-05-31 20:49:16