История изменений
Исправление www_linux_org_ru, (текущая версия) :
Но в Си это невозможно, использование void * неизбежно, и мелкие удобства при его использовании приятны.
когда мы кастим от Parent* к Child*, то каст не выписываем; когда кастим наоборот, то выписываем:
Сhild* child_ptr = (Child*) parent_ptr;
теперь вопрос — почему мы должны сделать исключение из этого простого (и возможно даже естественного) правила, когда у нас роль Parent* играет void* ?
void*, кстати, нужен в плюсах, когда хочется сделать например свой параметрический полиморфизм
Исходная версия www_linux_org_ru, :
Но в Си это невозможно, использование void * неизбежно, и мелкие удобства при его использовании приятны.
когда мы кастим от Parent* к Child*, то каст не выписываем; когда кастим наоборот, то выписываем:
Сhild* child_ptr = (Child*) parent_ptr;
теперь вопрос — почему мы должны сделать исключение из этого простого (и возможно даже естественного) правила, когда у нас роль Parent* играет void* ?
void*, кстати, нужен в плюсах, когда хочется сдеть например свой параметрический полиморфизм