Почему вы хотите создать метод с именем * foo () вместо просто foo ()? - PullRequest
1 голос
/ 21 сентября 2011

Я иногда вижу это в коде других людей:

public void *foo() {
...
}

public void bar() {
...
}

, но я так и не понял, для чего было значение *, и есть ли разница между public void *foo() и public void foo()?

*** Это код C ++ здесь!

Ответы [ 2 ]

10 голосов
/ 21 сентября 2011

public void *foo() - это открытая функция, которая возвращает пустой указатель (который может быть чем угодно). Дополнительную документацию по указателям можно найти здесь: http://www.cplusplus.com/doc/tutorial/pointers/ (в частности, раздел пустых указателей).

public void *foo() и public void* foo() одинаковы, а позиция * является чисто стилевой вещью (хотя стиль может иметь значение при использовании в другом месте).

public void foo() - публичная функция, которая ничего не возвращает.

2 голосов
/ 21 сентября 2011

Интервал сбивает вас с толку. void *foo(int) - это то же самое, что и void* foo(int). Первый возвращает void *, последний ничего не возвращает. Некоторые люди предпочитают прикреплять '*' к типу именно для того, чтобы избежать этой путаницы.

...