我看到这个有时候别人的代码:为什么你会想要创建一个名为* foo()而不是仅仅是foo()的方法?
public void *foo() {
...
}
public void bar() {
...
}
,但我永远无法理解什么*
的意思是对的,如果有public void *foo()
和public void foo()
之间有什么区别?
***这是C++代码!
我看到这个有时候别人的代码:为什么你会想要创建一个名为* foo()而不是仅仅是foo()的方法?
public void *foo() {
...
}
public void bar() {
...
}
,但我永远无法理解什么*
的意思是对的,如果有public void *foo()
和public void foo()
之间有什么区别?
***这是C++代码!
public void *foo()
是一个公共函数,它返回一个void指针(实际上可以是任何东西)。关于指针的更多文档可以在这里找到:http://www.cplusplus.com/doc/tutorial/pointers/(特别是void指针部分)。
public void *foo()
和public void* foo()
是相同的,*
的位置纯粹是一种风格的东西(虽然风格可以有其他地方使用时的含义)。
public void foo()
是一个不返回任何内容的公共函数。
是否允许在C++中使用'public'?我不记得曾经见过它,但我最近用三种不同的语言进行了大量编程,它们都变得混乱。 –
你是对的:它应该是'public:',签名如下。 –
关于样式的一些细节:在语法上,*绑定到变量名称,而不是类型,所以'int * foo,bar'声明了一个int-pointer变量(foo)和一个plain int(bar),这不是语法所暗示的。 'int * foo,bar'使它更加明显。 – tdammers
间距令您感到困惑。 void *foo(int)
与void* foo(int)
相同。前者返回void *
,后者不返回任何内容。有些人更愿意将'*'附加到该类型上以避免混淆。
你在说什么语言? – c0da
此处不在话题。堆栈溢出可能会好起来。同时,请阅读精美的手册。 –
很确定相同的答案(RTFineM)也会在SO上给出。 –