Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
newbie666
Заблокирован
#1

Можно ли привести объект неизвестного типа к нужному по его имени? - C++

13.08.2013, 18:22. Просмотров 607. Ответов 4
Метки нет (Все метки)

Доброго времени суток!
Есть один не стандартный вопрос. Например, есть какой - то класс, просто отдельный класс в отдельном от основной программы файле и где - то в основной программе есть функция, типо этого:
C++
1
2
3
4
IncomingObject(std::string type, void* pointer)
{
    ...
}
Тоесть в основной программе ничего не известно об классе, который в отдельном файле, а в этом отдельном классе есть инклюд основной программы и есть указатель на класс основной программы, через который и вызывается приведённая функция. Тоесть:
Отдельный класс вызывает функцию IncomingObject основного, в которую передаёт своё имя в строке или какую то бинарную информацию, опять же именно в СТРОКЕ и указатель на самого себя this, чтоб класс в основной программе, ничего не знающий о второстепенном классе смог бы по этой строке преобразовать указатель на void в указатель на нужный класс отправитель как бы, тоест ьв указатель на этот второстепенный класс, который и вызывал эту функцию...
Надеюсь идея понятна?
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.08.2013, 18:22
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Можно ли привести объект неизвестного типа к нужному по его имени? (C++):

Как привести объект пользовательского типа к заданному встроенному типу? - C++
Добрый вечер, у меня есть класс: ref class MessageClass { public: char *senderName; short sizeMessage; char *message;

STL. Создать объект-контейнер stack и заполнить его данными типа double - C++
Задание: 1. Создать объект-контейнер и заполнить его данными, тип которых определяется вариантом задания. 2. Посмотреть контейнер. 3....

Как записать объект с полем типа std::string в бинарном виде в файл и считать его обратно? - C++
Знаю как записывать объекты в файл в бинарном виде, но как быть, когда у них динамические поля? Какой метод использовать? Можете привести...

Аргументы неизвестного типа - C++
Хорошего дня :) Дело не очень важное и не очень срочное так как вариант решения уже есть... Но если кто-то поделится мыслями, буду...

Ввод числа неизвестного типа - C++
Как можно сделать ввод с клавиатуры числа тип которого заранее неизвестен? Используя функции

Значение бесконечности для неизвестного типа - C++
Доброго времени суток, уважаемые эксперты! Просьба помочь с возникшим у меня вопросом: для решение некоторой задачи, мне приходится иметь...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Убежденный
Системный программист
Эксперт С++
15550 / 7058 / 1114
Регистрация: 02.05.2013
Сообщений: 11,468
Завершенные тесты: 1
13.08.2013, 18:25 #2
Это:
Цитата Сообщение от newbie666 Посмотреть сообщение
в основной программе ничего не известно об классе
Противоречит этому:
Цитата Сообщение от newbie666 Посмотреть сообщение
чтоб класс в основной программе, ничего не знающий о второстепенном классе смог бы по этой строке преобразовать указатель на void в указатель на нужный класс
0
newbie666
Заблокирован
13.08.2013, 18:36  [ТС] #3
Цитата Сообщение от Убежденный Посмотреть сообщение
Противоречит этому:
А что есть тип класса как сущность? Это же просто возможно набор байт.... И может, если эту последовательность байт передавать как - то в строке, да в принципе не важно в чём, то можно всё таки будет преобразовать?

Добавлено через 1 минуту
Или же как - то сереализовать тип класса в бинарную переменную и передавать как - то........
0
Убежденный
Системный программист
Эксперт С++
15550 / 7058 / 1114
Регистрация: 02.05.2013
Сообщений: 11,468
Завершенные тесты: 1
13.08.2013, 18:39 #4
В С++ используется статическая типизация.
Типы задаются на этапе компиляции. "Построить" новый тип во время
выполнения нельзя.

Лучше расскажите, какую конкретно решаете задачу, может быть есть
типовое решение - полиморфизм, сериализация и т.п.

Добавлено через 54 секунды
Цитата Сообщение от newbie666 Посмотреть сообщение
Или же как - то сереализовать тип класса в бинарную переменную и передавать как - то........
Это уже другой разговор. Но все равно программа в итоге должна знать, какой тип она получает.

Добавлено через 13 секунд
Хотя бы полиморфно.
0
newbie666
Заблокирован
13.08.2013, 18:45  [ТС] #5
Цитата Сообщение от Убежденный Посмотреть сообщение
Лучше расскажите, какую конкретно решаете задачу, может быть есть
типовое решение - полиморфизм, сериализация и т.п.
Ну тут дело вот в чём. Программа на Qt. В основном классе есть слот, допустим тот же IncomingObject, в этот слот приходит сигнал с каким - то параметрами, я вот именно этого пока и не могу понять, ну пусть пока будет с теми же параметрами, как и описанно в первом посте (std::string type, void* pointer).
Всё дело в том, что хотелось бы получать в этот слот сигналы от совершенно разных классов, которых может быть очень много и которые будут писаться намного позже, чем основной класс.... Просто хотелоь бы получать как бы указатель на не известный объект или просто на переменную не известного заранее типа и по какой - то дополнительной информации, может по типу данных в дополнительно передаваемой строке, как бы по подсказке, приводить указатель на void к нужному типу.....
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.08.2013, 18:45
Привет! Вот еще темы с ответами:

Множество аргументов неизвестного типа, аналог printf() - C++
Я должен создать функцию, которая принимает неизвестное заранее количество аргументов, наподобии printf(). Как мне их объявить и как потом...

создание ф-ии с плавающим кол-вом аргументов неизвестного типа. (С / С++) - C++
Как создать такую? Иными словами, интересует принцип работы (в плане приема аргументов) ф-ии printf (); Ведь в нее можно передавать любое...

Как сделать шаблон на считывание неизвестного типа данных? - C++
Есть размерности двумерного массива. Нужно считать с клавиатуры числа. Они могут быть как int, так и float или double. Как это сделать? ...

Функция с переменным числом параметров заранее неизвестного типа - C++
Здравствуйте, коллеги! Прошу помочь начинающему в С++. Есть функция с переменным числом параметров заранеее неизвестного типа. Внутри...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
13.08.2013, 18:45
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru