| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Общие вопросы > void, struct... |
| Автор: FrAcTaL_life 22.11.2003, 13:50 | ||
| Что такое void? А именно:
И еще *)..., в чем разница между struct и class? Вродебы одинаковые вызовы из вне, обращения, передачи аргументов в функции... |
| Автор: Hroft 22.11.2003, 15:20 |
| void - "никакой" тип. void* - указатель на любой тип. перед именем функции void означает, что ф-я не фозвращает значения, и в ней не может быть return'а. получается паскалевская процедура. если не ошибаюсь, то в новых стандартах не рекомендуется писать void в качестве списка параметров. нужно просто оставлять скобки пустыми. это от С осталось. а class и struct различаются: по умолчанию все члены у структуры public, а у класса private. не помню точно, но и наследуются они с модификаторами public у структуры и private у класса. т.е.: struct s1 { private: int x; }; и class s2 { int x; }; эквивалентны, как и class s_1 { public: int x; }; и struct s_2 { int x; }; |
| Автор: FrAcTaL_life 22.11.2003, 15:46 |
| 1. вот ты (Hroft) написал void*... А что собственно дает эта звездочка? Есть еще char* 2. в примерах книги (по которой я изучаю с++) перед функцией мелькает int. на что он указывает? на аргументы(типа все аргументы int)? |
| Автор: NiJazz 22.11.2003, 17:00 |
| FrAcTaL_life, тут же не школа. Бери книгу и вперёд! Список литературы есть на форуме. |
| Автор: FrAcTaL_life 22.11.2003, 18:12 |
| NiJazz В моих книгах это ненаписано, поэтому и спрашиваю! |
| Автор: NiJazz 22.11.2003, 19:12 |
| FrAcTaL_life, значит у тебя книги не по С++... |
| Автор: NiJazz 22.11.2003, 19:13 |
| FrAcTaL_life, ибо это базовые понятия и они ОБЯЗАНЫ быть в книгах по С++. |
| Автор: FrAcTaL_life 22.11.2003, 20:21 |
| NiJazz Извини но ты бы лучше вместо того чтобы попрекать, ответил на вопрос! А на счет книг...., да не знаю...., написано С++ и мне кабы достачно этого |
| Автор: NiJazz 22.11.2003, 20:51 |
| Звёздочка означает, что эта переменная не является элементом данного типа, а только указателем на значение его. То есть её значение - адрес, по которому расположено значение в памяти. Таким образом можно, зная адрес, можно использовать значение. void - пустота. Можно понимать это так. Всё же лучше почитай книгу внимательно... Удачи! ;) |
| Автор: <Spawn> 23.11.2003, 14:21 | ||||
Если говорить с точки зрения паскаля, то void* это нетипизированный указатель, т.е. указатель, указывающий на данный любого типа(в Паскале он называется Pointer). Т.е. адрес на который ссылается этот указатель может содержать различные данные - переменную, структуру, адресс функции и т.д. Попросту говоря это есть переменная размером 4 байта(по крайней мере в 32-разрядных ОС), содержащая в себе значение, являющееся адресом переменной, на которую ссылается указатель. Примеры:
Так же ты можешь увидеть, что некоторые АПИ функции используют нетепизированный указатель для передачи в них адреса функции. Сори если где ошибся, поскольку Си я учу пару недель и все может быть. |
| Автор: <Spawn> 23.11.2003, 16:21 |
| Ои, когда читал, то показалось, что был вопрос про void*. Ну ни чего страшного. |