4 / 4 / 0
Регистрация: 23.02.2013
Сообщений: 151
1

Чем плохой указатель на void?

02.08.2013, 12:10. Показов 1648. Ответов 11
Метки нет (Все метки)

Здравствуйте! Недавно прочитал статью на хабре http://habrahabr.ru/post/102930/ Сабж - архитектура игрового двигла, а именно менеджер состояний. В нем используется указатель на войд. Вот внизу комментарии есть, что это все сплошной говнокод и указатель такой нельзя юзать в большом проекте. Объясните мне, почему? Что же такого страшного в использование такого указателя не только в данной статье, а в общем? Чем плох указатель на void?
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
02.08.2013, 12:10
Ответы с готовыми решениями:

Указатель типа void. Использование косвенного связывания через универсальный указатель
Необходимо использовать косвенного связывания через универсальный указатель, примерный вид: struct...

Функция принимает указатель на void и возвращает указатель на int
Запишите прототип функции, которая принимает указатель на void и возвращает указатель на int.

При удалении первого элемента из динамического списка присваивается плохой указатель
Проблема появляется только при удалении первого элемента. // Запись содержит марку автобуса,...

Указатель на void
Как можно сделать универсальную функцию, которая принимает указатель на неопределенный тип,...

11
Каратель
Эксперт С++
6607 / 4026 / 401
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
02.08.2013, 12:19 2
а вы можете сказать на что указывает ваш void* в каждый момент времени?
на то и были придуманы шаблоны в с++ чтоб тип всегда был известен
1
1 / 1 / 0
Регистрация: 02.08.2013
Сообщений: 20
02.08.2013, 12:26 3
Для большого проекта уменьшает скорость обработки из-за выведения времени на определения типа.
0
4 / 4 / 0
Регистрация: 23.02.2013
Сообщений: 151
02.08.2013, 12:32  [ТС] 4
Jupiter, То есть нужно пользоваться шаблонами или полиморфизмом?
0
4004 / 3266 / 914
Регистрация: 25.03.2012
Сообщений: 12,198
Записей в блоге: 1
02.08.2013, 12:40 5
Цитата Сообщение от anubis1768 Посмотреть сообщение
Jupiter, То есть нужно пользоваться шаблонами или полиморфизмом?
можно и void*
Те кто страдают склерозом и не помнят весь свой код - пусть боятся
1
Каратель
Эксперт С++
6607 / 4026 / 401
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
02.08.2013, 13:16 6
Лучший ответ Сообщение было отмечено как решение

Решение

Цитата Сообщение от anubis1768 Посмотреть сообщение
То есть нужно пользоваться шаблонами или полиморфизмом?
нет, шаблоны придумали просто так чтоб ними никто не пользовался
3
:)
Эксперт С++
4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
02.08.2013, 15:07 7
Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
Те кто страдают склерозом и не помнят весь свой код - пусть боятся
Писать код надо так, чтобы помнить пришлось как можно меньше. Код должен быть "говорящим", и говорящим как можно более конкретные вещи. Может еще имена переменным предложите давать var1, var2 .. ?

Если есть некая иерархия объектов, то в качестве обобщенного указателя (void*), используется указатель на самый базовый класс. А там уже виртуальными методами и прочими RTTI можно получить реальный тип объекта.
0
Kastaneda
02.08.2013, 15:37
  #8

Не по теме:

Цитата Сообщение от Tulosba Посмотреть сообщение
Писать код надо так, чтобы помнить пришлось как можно меньше. Код должен быть "говорящим", и говорящим как можно более конкретные вещи. Может еще имена переменным предложите давать var1, var2 .. ?
[sarcasm] рассуждения типичного склеротика [/sarcasm]

0
В астрале
Эксперт С++
8048 / 4805 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
02.08.2013, 15:44 9
Цитата Сообщение от Jupiter Посмотреть сообщение
нет, шаблоны придумали просто так чтоб ними никто не пользовался

Не по теме:

Вот, когда пытаешься скомпилировать некий код (ошибочный офк) в котором spirit/fusion/proto - это высказывание кажется правдивым.

1
~ Эврика! ~
1256 / 1005 / 74
Регистрация: 24.07.2012
Сообщений: 2,002
02.08.2013, 22:01 10
Цитата Сообщение от anubis1768 Посмотреть сообщение
Чем плох указатель на void?
Ничем. Пока он используется как указатель на "непонятный кусок байтов, смысл которого меня вообще не волнует". Если смысл появляется, то стоит использовать указатель на какой-то конкретный тип (он может быть неопределённым, но имя ему обязательно надо дать). Тогда хоть чуть-чуть плюшек статической типизации будет для (очевидно) динамически типизированного кода.
1
gray_fox
02.08.2013, 22:36
  #11

Не по теме:

Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
Те кто страдают склерозом и не помнят весь свой код - пусть боятся
lol у меня склероз оказывается... спасибо, доктор)

1
Croessmah
03.08.2013, 18:46     Чем плохой указатель на void?
  #12

Не по теме:

Цитата Сообщение от anubis1768 Посмотреть сообщение
а именно менеджер состояний.
Статья слизана с книги "Programming Role Playing Games with DirectX"

1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
03.08.2013, 18:46

Структуры и указатель на void
Помогите разобраться, возможно ли организовать следующий алгоритм. Стоит задача передавать данные...

Указатель void на структуру
Есть некий тип структуры action. Для функции _beginthread третьим параметром требуется указатель на...

Указатель типа void
Добрый день. enum Type { Double, Int, Float }; void func(int k,enum Type t,...) { void...

Указатель void в структуре
Здравствуйте. Вот есть структура, например, и в ней поле void *data. Вопрос такой - я могу в дату...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru