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

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

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

создание ф-ии с плавающим кол-вом аргументов неизвестного типа. (С / С++) C++
C++ STL. Создать объект-контейнер stack и заполнить его данными типа double
C++ Как записать объект с полем типа std::string в бинарном виде в файл и считать его обратно?
C++ Значение бесконечности для неизвестного типа
C++ Хранение вектора экземпляров шаблонного класса неизвестного типа
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Убежденный
Системный программист
 Аватар для Убежденный
14212 / 6227 / 988
Регистрация: 02.05.2013
Сообщений: 10,385
Завершенные тесты: 1
13.08.2013, 18:25     Можно ли привести объект неизвестного типа к нужному по его имени? #2
Это:
Цитата Сообщение от newbie666 Посмотреть сообщение
в основной программе ничего не известно об классе
Противоречит этому:
Цитата Сообщение от newbie666 Посмотреть сообщение
чтоб класс в основной программе, ничего не знающий о второстепенном классе смог бы по этой строке преобразовать указатель на void в указатель на нужный класс
newbie666
Заблокирован
13.08.2013, 18:36  [ТС]     Можно ли привести объект неизвестного типа к нужному по его имени? #3
Цитата Сообщение от Убежденный Посмотреть сообщение
Противоречит этому:
А что есть тип класса как сущность? Это же просто возможно набор байт.... И может, если эту последовательность байт передавать как - то в строке, да в принципе не важно в чём, то можно всё таки будет преобразовать?

Добавлено через 1 минуту
Или же как - то сереализовать тип класса в бинарную переменную и передавать как - то........
Убежденный
Системный программист
 Аватар для Убежденный
14212 / 6227 / 988
Регистрация: 02.05.2013
Сообщений: 10,385
Завершенные тесты: 1
13.08.2013, 18:39     Можно ли привести объект неизвестного типа к нужному по его имени? #4
В С++ используется статическая типизация.
Типы задаются на этапе компиляции. "Построить" новый тип во время
выполнения нельзя.

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

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

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

Текущее время: 19:23. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru