1 | |
Есть ли элемент который возвращает инфу на какой элемент иерархии01.09.2012, 20:28. Показов 933. Ответов 12
Метки нет (Все метки)
... Поинтор сейчас поинтит ???
Допустим есть Абстрактный папа я делаю в мейне поинтор этого папы заряжаю его на какого ниб ребенка и вызываю всякие там виртуальные функции которые переводятся на ребенка с которым я сейчас работаю через пойтор так вот... как мне вернуть инфу на какого ребенка сейчас отцовский поитер направлен
0
|
01.09.2012, 20:28 | |
Ответы с готовыми решениями:
12
Создать метод, который определяет, есть ли в списке L хотя бы один элемент, который равен следующему по кругу Необходлимо определить, есть ли в массиве мажорирующий элемент, и если есть, то какой Есть ли функция, которая возвращает пару: минимальный элемент и его номер в списке? Как удалить в векторе элемент, который есть структура? |
~ Эврика! ~
1257 / 1006 / 74
Регистрация: 24.07.2012
Сообщений: 2,002
|
|
01.09.2012, 21:02 | 2 |
Сообщение было отмечено как решение
РешениеНе по теме: Что не пост, то лингвистическая загадка :) (No offense intended.) Если знаете тип, то dynamic_cast<дочерний класс>, но это очевидно. Если именно узнать динамический тип, то тут вас спасёт (?) через-жопу-работающая остальная часть RTTI: делаете typeid(дочерний объект), получаете на руки std::type_info. С type_info можно (нормально) делать только две вещи. Сравнивать с другим type_info, но только "равно — не равно", другого нет. И получить его имя в виде ASCIIZ-строки, но что там именно написано, определяется реализацией. Так что полагаться на него нельзя, это максимум чтоб вывести на экран. В Си++ нет (встроенной) рефлексии. Если хочется — зафичьте отцовскому классу свою виртуальную функцию getType(), которая будет возвращать какой-нибудь enum с тегом типа, переопределите её в дочерних на нужный ChildType_n. Но даже в таком варианте оно выглядит ужасно. Так что ещё лучше придумать какое-нибудь другое решение возникшей проблемы.
5
|
01.09.2012, 22:38 [ТС] | 3 | ||||||||||
Короче тупо самому написать виртуальную функцию... а ля
Не по теме:
ооо я у кого подсмотрел в свое время вот такой кусок...
кстати насколько я помню он что то даже адекватное возвращал а ля имя класса...
0
|
~ Эврика! ~
1257 / 1006 / 74
Регистрация: 24.07.2012
Сообщений: 2,002
|
|
01.09.2012, 23:00 | 4 |
Ага. Такую функцию.
> и как это пересобачить под пойнтер ??? Можно привести пример желаемого кода, который бы решал нужную задачу, который бы вы написали, если бы оно всё "пересобачилось"?
1
|
01.09.2012, 23:34 [ТС] | 5 | |||||
main.cpp
Не по теме: подскажите плиз хот кейс для ребилд онли в MS VS 2010 rebuild hot keys = ctrl + alt + F7
0
|
~ Эврика! ~
1257 / 1006 / 74
Регистрация: 24.07.2012
Сообщений: 2,002
|
|
01.09.2012, 23:43 | 6 |
Эм, и что эта программа должна выводить? 12*32 и 2322*444? Так она вроде это и сейчас делает.
0
|
~ Эврика! ~
1257 / 1006 / 74
Регистрация: 24.07.2012
Сообщений: 2,002
|
|
01.09.2012, 23:53 | 8 |
Ну вон же решение с виртуальной функцией. Каждому дочернему классу делаете свою специализацию. Нормальной рефлексии нет, так что так.
0
|
873 / 771 / 173
Регистрация: 11.01.2012
Сообщений: 1,942
|
||||||
02.09.2012, 00:11 | 10 | |||||
по индексу :
0
|
В астрале
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
|
|
02.09.2012, 00:13 | 11 |
MrCold, И где тут инфа о типе?)
0
|
Делаю внезапно и красиво
1313 / 1228 / 72
Регистрация: 22.03.2011
Сообщений: 3,744
|
|
02.09.2012, 09:02 | 12 |
Подозреваю, что дело всё таки в ошибочной архитектуре и/или скудном интерфейсе базового класса.
0
|
Модератор
8951 / 6717 / 921
Регистрация: 14.02.2011
Сообщений: 23,714
|
|
02.09.2012, 09:25 | 13 |
в MFC это реализовано при помощи виртуальной функции GetRuntimeClass
которая возвращает структуру, в коей написано имя класса, размер, кто родитель и т.д http://msdn.microsoft.com/en-u... s.80).aspx http://www.firststeps.ru/mfc/steps/help/r.php?638
0
|
02.09.2012, 09:25 | |
02.09.2012, 09:25 | |
Помогаю со студенческими работами здесь
13
Есть ли какой-то числовой элемент, обозначающий часовой пояс? Есть ли в очереди хотя бы один элемент, который равен следующему за ним В массиве каждый элемент заменить на ближайший следующий за ним элемент, который больше его В заданной прямоугольной матрице найти: максимальный элемент и левее столбца, который содержит этот элемент, Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Опции темы | |
|
Новые блоги и статьи | |||||
Как проводить научные вычисления на Python
InfoMaster 15.01.2025
Python стал одним из наиболее востребованных языков программирования в области научных вычислений благодаря своей простоте, гибкости и обширной экосистеме специализированных библиотек. Научные. . .
|
Создание игры типа Minecraft на PyGame/Python: пошаговое руководство
InfoMaster 15.01.2025
В данном руководстве мы рассмотрим процесс создания игры в стиле Minecraft с использованием библиотеки PyGame на языке программирования Python. Этот проект идеально подходит как для начинающих. . .
|
Как создать свою первую игру в стиле Doom на Unreal Engine
InfoMaster 15.01.2025
Разработка шутера от первого лица в стиле классического Doom представляет собой увлекательное путешествие в мир игрового программирования, где сочетаются творческий подход и технические навыки. . . .
|
Параллельное программирование: основные технологии и принципы
InfoMaster 15.01.2025
Введение в параллельное программирование
Параллельное программирование представляет собой фундаментальный подход к разработке программного обеспечения, который позволяет одновременно выполнять. . .
|
Как написать микросервис на C# с Kafka, MediatR, Redis и GitLab CI/CD
InfoMaster 15.01.2025
В современной разработке программного обеспечения микросервисная архитектура стала стандартом де-факто для создания масштабируемых и гибких приложений. Этот подход позволяет разделить сложную систему. . .
|
Что такое CQRS и как это реализовать на C# с MediatR
InfoMaster 15.01.2025
Концепция CQRS и её роль в современной разработке
В современном мире разработки программного обеспечения архитектурные паттерны играют ключевую роль в создании масштабируемых и поддерживаемых. . .
|
Как настроить CI/CD с Azure DevOps
InfoMaster 15.01.2025
CI/ CD, или непрерывная интеграция и непрерывное развертывание, представляет собой современный подход к разработке программного обеспечения, который позволяет автоматизировать и оптимизировать процесс. . .
|
Как настроить CI/CD с помощью Jenkins
InfoMaster 15.01.2025
Введение в CI/ CD и Jenkins
В современной разработке программного обеспечения непрерывная интеграция (CI) и непрерывная доставка (CD) стали неотъемлемыми элементами процесса создания качественных. . .
|
Как написать микросервис на Go/Golang с Kafka, REST и GitHub CI/CD
InfoMaster 14.01.2025
Определение микросервиса, преимущества использования Go/ Golang
Микросервис – это архитектурный подход к разработке программного обеспечения, при котором приложение состоит из небольших, независимо. . .
|
Как написать микросервис с нуля на C# с RabbitMQ, CQRS, Swagger и CI/CD
InfoMaster 14.01.2025
В современном мире разработки программного обеспечения микросервисная архитектура стала стандартом де-факто для создания масштабируемых и гибких приложений. Этот архитектурный подход предполагает. . .
|
Как создать интернет-магазин на PHP и JavaScript
InfoMaster 14.01.2025
В современном мире электронная коммерция стала неотъемлемой частью бизнеса. Создание собственного интернет-магазина открывает широкие возможности для предпринимателей, позволяя достичь большей. . .
|
Как написать Тетрис на Ассемблере
InfoMaster 14.01.2025
Тетрис – одна из самых узнаваемых и популярных компьютерных игр, созданная в 1984 году советским программистом Алексеем Пажитновым. За прошедшие десятилетия она завоевала симпатии миллионы людей по. . .
|