2017-04-20 131 views
-5

我最近开始编码,我一直在试图弄清楚这是什么意思一段时间:
static thing* dostuff(); thing* thing::dostuff(){};
我搜索函数指针,但他们看起来不同。这些类型的函数似乎出现在代码的重要领域,我想知道它们的含义以及如何使用它们。谢谢。指针?指针函数?

+1

这是一个返回指针的函数。 – Donnie

+0

阅读[标签:指针] – edmz

+0

我的水晶球告诉我,第一个是在一个类的东西类的定义,后者在一些实现源文件。而后者说谎,因为它声称返回一个“东西”指针,实际上什么都不做。这两个都是返回指针的函数。函数指针与此无关。 – WhozCraig

回答

2

您的代码片段static thing* dostuff()thing* thing::dostuff(){}与函数指针无关,而是函数声明和此函数的定义/实现。

static thing* dostuff();声明一个函数,该函数返回数据类型为thing的指针,该指针可能是类类型。

因此,很有可能dostuff实际上是类thing中定义的成员函数。关键字static声明未绑定到类实例的成员,并且静态成员函数不与任何对象关联。当被调用时,他们没有this终场前:

class thing { 
    static thing* dostuff(); 
}; 

然后,thing* thing::dostuff(){}thing这个类的静态成员函数的实现。前缀thing::表示此功能是类thing的一部分。

0

它只是一个静态成员函数thing,被称为dostuff,返回一个类型为thing*的指针。

没有什么特别的或怪异的。