Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 17.12.2013, 17:28   #11
220Volt
Форумчанин
 
Регистрация: 14.12.2012
Сообщений: 668
По умолчанию

Цитата:
Сообщение от waleri Посмотреть сообщение
...
Если запретить такой каст, то от С++ ничего не останется - на этом все держится.

Какова конечная цель?
Я не говорю запрещать каст, ведь есть const, есть volatile, предположил наличие какого-нибудь nocast.
Насчет цели. Конкретной цели нет просто мысли, я думаю на эти грабли легко наступить.
220Volt вне форума Ответить с цитированием
Старый 17.12.2013, 17:31   #12
pproger
C++ hater
СтарожилДжуниор
 
Аватар для pproger
 
Регистрация: 19.07.2009
Сообщений: 3,333
По умолчанию

2220Volt
Цитата:
но хотелось бы другого решения
я его тебе предложил, единственно верное
I invented the term Object-Oriented, and I can tell you I did not have C++ in mind. (c)Alan Kay

My other car is cdr.

Q: Whats the object-oriented way to become wealthy?
A: Inheritance
pproger вне форума Ответить с цитированием
Старый 17.12.2013, 17:36   #13
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,331
По умолчанию

Цитата:
Сообщение от 220Volt Посмотреть сообщение
Без добавления хотя бы одного виртуального метода typeid НЕ работает.

У меня на g++ без виртуального метода компилируется и работает, но typid работает неверно, следовательно полагаться на то что компилятор выдаст ошибку не хочу.
Я не сказал "не компилируется", я сказал "не работает"...

В данном примере решение - шаблонная функция.
Надо всегда помнить, что массив и указатель - это не одно и то же.

Следующий шаг - массив из разных наследников S
waleri вне форума Ответить с цитированием
Старый 17.12.2013, 18:09   #14
220Volt
Форумчанин
 
Регистрация: 14.12.2012
Сообщений: 668
По умолчанию

Цитата:
Сообщение от waleri Посмотреть сообщение
Я не сказал "не компилируется", я сказал "не работает"...

В данном примере решение - шаблонная функция.
Надо всегда помнить, что массив и указатель - это не одно и то же.

Следующий шаг - массив из разных наследников S
По-моему это спорно. Ведь есть еще и new, а от нее на уровне языка мы получаем не массив, а указатель.
Сегодня написали функцию принимающую массив динамически выделенных структур. Через месяц написали наследника от этой структуры и передали массив новых структур в старую функцию, ошибка готова.
Писать все в шаблонах... там тоже свои особенности.
220Volt вне форума Ответить с цитированием
Старый 17.12.2013, 18:16   #15
220Volt
Форумчанин
 
Регистрация: 14.12.2012
Сообщений: 668
По умолчанию

Удалил сообщение

Последний раз редактировалось 220Volt; 17.12.2013 в 18:17. Причина: Не согласен
220Volt вне форума Ответить с цитированием
Старый 17.12.2013, 19:03   #16
220Volt
Форумчанин
 
Регистрация: 14.12.2012
Сообщений: 668
По умолчанию

Как резюме: согласен с waleri, лично я буду писать функции работающие с массивами (полностью или интерфейсную часть) в шаблонах. Благодарю всех за участие.

Последний раз редактировалось 220Volt; 17.12.2013 в 19:11. Причина: заменил "адресом (++ --)" на "массивами"
220Volt вне форума Ответить с цитированием
Старый 18.12.2013, 17:31   #17
220Volt
Форумчанин
 
Регистрация: 14.12.2012
Сообщений: 668
По умолчанию

Думаю теперь я понял зачем нужно использовать std::array вместо Си array и умные указатели для new (помимо утечек), тогда таких проблем не будет. А если где-то передан голый указатель, то это не массив, а просто указатель.

Последний раз редактировалось 220Volt; 18.12.2013 в 17:33.
220Volt вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
C#, проблема с получением указателя через Marshal.GetFunctionPointerForDelega te Alex217Vish Общие вопросы .NET 0 15.09.2010 23:23
мигание TLabel при наведении указателя skalt12 Общие вопросы Delphi 16 22.08.2010 12:12
Изменение кнопки при навдении указателя мыши Syltan JavaScript, Ajax 3 25.05.2010 15:41
Увеличение изображения при наведении указателя Savato HTML и CSS 2 07.10.2009 22:39
Изменение вида Image при наведении указателя Сергей А Помощь студентам 3 05.08.2007 15:26