Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Определение класса по указателю
|
|||
|---|---|---|---|
|
#18+
Здравствуйте! Есть такая задача: приходит число num типа int. Это указатель либо на элемент класса А либо на элемент класса B. Как узнать, на какой элемент указывает мой указатель? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2014, 13:10 |
|
||
|
Определение класса по указателю
|
|||
|---|---|---|---|
|
#18+
Medvedev_A, число не может быть указателем. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2014, 13:29 |
|
||
|
Определение класса по указателю
|
|||
|---|---|---|---|
|
#18+
Medvedev_Aчисло num типа int. Это указатель int это не указатель. Это число. Но если привести его к указателю на общего предка классов А и В и при этом программа собрана с поддержкой rtti, то typeid определит тип объекта на который он указывает. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2014, 13:46 |
|
||
|
Определение класса по указателю
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakov, общего предка нет. Два разных класса. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2014, 14:43 |
|
||
|
Определение класса по указателю
|
|||
|---|---|---|---|
|
#18+
Medvedev_Aобщего предка нет. Так сделай. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2014, 15:01 |
|
||
|
Определение класса по указателю
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovMedvedev_Aчисло num типа int. Это указатель int это не указатель. Это число. Но если привести его к указателю на общего предка классов А и В и при этом программа собрана с поддержкой rtti, то typeid определит тип объекта на который он указывает. для этого не обязательно иметь общего предка классов. Достаточно просто включенного rtti. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2014, 15:50 |
|
||
|
Определение класса по указателю
|
|||
|---|---|---|---|
|
#18+
MasterZivдля этого не обязательно иметь общего предка классов. Достаточно просто включенного rtti. Попробовал в GCC - недостаточно. Покажешь примерчик? Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2014, 19:53 |
|
||
|
Определение класса по указателю
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakov, Пока суть да дело -- с чего ты решил, что нужен общий предок для этого? каков твой ход мыслей? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2014, 22:37 |
|
||
|
Определение класса по указателю
|
|||
|---|---|---|---|
|
#18+
MasterZivДостаточно просто включенного rtti и как минимум одна виртуальная функция нужна. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2014, 22:39 |
|
||
|
Определение класса по указателю
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakov, Сори, я понял, о чём ты. Да, ты отчасти прав, по крайней мере надо найти в стандарте подтверждение, что такое переносимо и гарантированно будет работать. Дело в том, что для RTTI создаются как бы невидимые виртуальные функции (вроде бы одна только), и при этом класс для RTTI обязан быть полиморфным. Так вот, поскольку функция неявно создаваемая, то не понятно из какой ячейки VFPT брать функцию typeid ... Тем не менее, такая хрень работает (VC2013). Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. Код: plaintext 1. 2. 3. 4. Правда это не значит, что она обязана работать везде. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2014, 22:56 |
|
||
|
Определение класса по указателю
|
|||
|---|---|---|---|
|
#18+
MasterZivДа, ты отчасти прав Но только отчасти. Я забыл включить виртуальную функцию в класс, поэтому оно не работало. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2014, 23:11 |
|
||
|
Определение класса по указателю
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakov, Да и там ещё не понятно, к какому типу приводить если что... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2014, 23:25 |
|
||
|
Определение класса по указателю
|
|||
|---|---|---|---|
|
#18+
MasterZiv, Код: plaintext 1. 2. 3. UB 2 Medvedev_A делайте общий базовый класс и не гадай на кофейной гуще. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2014, 23:32 |
|
||
|
Определение класса по указателю
|
|||
|---|---|---|---|
|
#18+
Даже интересно стало... Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. Так тоже работает. С .dll-ями наверняка почти НЕ будет работать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2014, 23:35 |
|
||
|
Определение класса по указателю
|
|||
|---|---|---|---|
|
#18+
Анатолий ШироковMasterZiv, Код: plaintext 1. 2. 3. UB Дакажи, что трэуголнык , э ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2014, 23:36 |
|
||
|
Определение класса по указателю
|
|||
|---|---|---|---|
|
#18+
ziv, кури стандарт. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2014, 23:42 |
|
||
|
Определение класса по указателю
|
|||
|---|---|---|---|
|
#18+
Анатолий ШироковMasterZiv, Код: plaintext 1. 2. 3. UB Не, ну от Код: plaintext 1. я готов отказаться... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2014, 23:44 |
|
||
|
Определение класса по указателю
|
|||
|---|---|---|---|
|
#18+
MasterZiv, слушай, не напрягай, а. у тебя "работает" лишь для "примитивных" типов без множественного наследования, ромбовидного наследования и т.п. вещей и понятно почему - ссылка на информацию о типе лежит по известному смещению в таблице виртуальных функций. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2014, 00:02 |
|
||
|
Определение класса по указателю
|
|||
|---|---|---|---|
|
#18+
MasterZiv, грубо говоря, ты хачишь. почему автору вопроса не легализоваться и сделать общий базовый класс Код: plaintext 1. 2. 3. 4. 5. тогда все станет стройно и без каких-либо вопросов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2014, 00:13 |
|
||
|
|

start [/forum/topic.php?fid=57&tid=2019687]: |
0ms |
get settings: |
7ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
62ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
54ms |
get tp. blocked users: |
2ms |
| others: | 283ms |
| total: | 444ms |

| 0 / 0 |
