2

我来自 Objective-C 世界并学习了一些 C++ 来将 box2D 集成到我的应用程序中。我发现了class::functionC++ 中的语法,我想知道它是否与类方法相比,但我看到同一个方法调用了一次 with::和一次 with ->。是否有任何等效于 C++ 中的类方法?

4

3 回答 3

5

好吧,您的问题声明与其定义不符,但无论如何让我尝试启发您...

+ (void)methodObjective-C 中的类与::C++ 中的范围运算符之间的比较

它们并不完全相同。C++ 具有命名空间,因此NameSpace::func()意味着“调用func位于命名空间中的函数NameSpace”。

它也用于调用静态成员函数,但这不是它的唯一目的。

是否有任何等效于 C++ 中的类方法?

是的,正如我刚刚写的:static类成员属于类,而不是类的实例。

于 2013-08-05T14:00:06.070 回答
2

是否有任何等效于 C++ 中的类方法?

是的,简单地使用这样的静态方法:

class MyClass 
{
public:
    static void classFunc() { }
};

 MyClass::classFunc();
于 2013-08-05T13:59:56.540 回答
1

::就是所谓的“ ” scope-operator,例如,您可以使用它从 C++ 类中调用静态方法。
" ->"-Operator 用于取消引用指向对象的成员(成员和方法等)。

作为参考,有维基百科这篇文章:

在计算机编程中,作用域是值和表达式相关联的封闭上下文。范围解析运算符有助于识别和指定标识符所指的上下文。不同的编程语言的具体用途因范围概念而异。在许多语言中,范围解析运算符写为 ::。

class A
{         //
  static int i;  //scope of A
};        //
A::i = 4; //scope operator refers to the integer i declared 
于 2013-08-05T13:58:54.523 回答