你为什么要创建一个名为* foo()的方法,而不仅仅是foo()?

时间:2011-09-21 02:40:16

标签: c++ programming-languages methods

我有时会在其他人的代码中看到这一点:

public void *foo() {
...
}

public void bar() {
...
}

但我从未明白*的含义是什么,以及public void *foo()public void foo()之间是否存在差异?

***这是这里的C ++代码!

2 个答案:

答案 0 :(得分:10)

public void *foo()是一个公共函数,它返回一个void指针(基本上可以是任何东西)。有关指针的更多文档可以在这里找到:http://www.cplusplus.com/doc/tutorial/pointers/(特别是void指针部分)。

public void *foo()public void* foo()是相同的,*的位置纯粹是一种风格的东西(虽然这种风格在其他地方使用时会产生影响)。

public void foo()是一个不返回任何内容的公共函数。

答案 1 :(得分:2)

间距令你感到困惑。 void *foo(int)void* foo(int)相同。前者返回void *,后者不返回任何内容。有些人更喜欢将'*'精确地附加到类型上以避免这种混淆。