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

"Двойной" доступ к переменным класса - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ С++, какую среду разработки выбрать? http://www.cyberforum.ru/cpp-beginners/thread713444.html
Появилось желание изучить язык программирования. Собственно, интересует какая разница, и существует ли она вообще между С++ и Visual C++? Какую среду разработки используют профессиональные программисты?
C++ Описать структуру ZNAK Описать структуру ZNAK, содержащую следующие поля: • Фамилия, имя • Знак зодиака • Дата рождения (массив из 3 чисел). Программа должна выполнять следующие действия: • Ввод с клавиатуры данных в массив, состоящий из n элементов типа ZNAK; записи должны быть упорядочены по датам рождения; • Вывод на экран информации о человеке, чья фамилия введена с клавиатуры; Если такого нет, выдать на... http://www.cyberforum.ru/cpp-beginners/thread713435.html
C++ CUDA на примерах
Скомпилировал из данной книги несколько вариантов программы(не важно какой): с глобальной, константной, текстурной памятью. Измерил, как описано в коде, время выполнения кода CUDA функциями: cudaEventCreate(), cudaEventRecord(), cudaEventElapsedTime() на старой паршивой карте: Asus NVidia GeForce 8500 GT. Все работает и время выполнения каждого варианта получаю разное,-в зависимости от...
C++ Сортировка массива указателей на абстрактный базовый класс
Я создал абстрактный базовый класс (с названием Base) и два производных класса (с названиями Two и Three). После инициализации объектов производных классов каждый из этих объектов имеет два данных-члена: string и double. Вопрос: как можно организовать сортировку всех созданных объектов (и объектов Two, и объектов Three)? Первое мое действие - я создаю массив указателей на АБК Base и помещаю в...
C++ Контроль ввода http://www.cyberforum.ru/cpp-beginners/thread713413.html
Задача: написать программу, которая дает пользователю ввести массив, а потом при помощи функции подсчитать символы. Вот код: #include <iostream> using namespace std; const int ArSize=10; void strcount(const char * str); int main() { char input; char next; cout<<"Enter a line:\n";
C++ Удаление и добавление звена в линейном списке Здравствуйте тётеньки и дяденьки!!!...Помогите мне дописать код... Задача: Картотека в бюро обмена квартир организована в виде линейного списка. Сведения о каждой квартире включают: -количество комнат; -этаж; -площадь; -адрес. Написать программу, которая обеспечивает: -начальное формирование картотеки; -ввод заявки на обмен; подробнее

Показать сообщение отдельно
scriptus
1 / 1 / 0
Регистрация: 08.02.2012
Сообщений: 16
03.12.2012, 11:39  [ТС]     "Двойной" доступ к переменным класса
I.M., конкретно сейчас все эти танцы нужны для third-party модуля, который понимает входные данные только в формате UniformType. Модуль закрытый и все что мне доступно - конструкторы UniformType для классов, с которыми работает система в целом (а их много). "Родные" же типы данных нужны для корректной работы моей части системы.
Вообще изначально это проблема плохой проработки интерфейса стороннего модуля (имхо).

Другой пример (навскидку) из Qt - класс QAbstractItemModel (и наследуемые от него) - модель данных для qt'шной парадигмы Model-View (разновидность классической MVC). Там есть такая штука:
C++ (Qt)
1
virtual QVariant data (const QModelIndex & index, int role = Qt::DisplayRole ) const = 0;
которая по индексу возвращает данные типа QVariant (аналог UniformType в приведенном выше примере). Этот метод нужно реализовать в наследуемом классе, что в принципе приводит к аналогичному вопросу.
В Qt же такой интерфейс используется для взаимодействия с виджетами (QListView, QTableView и т.п.) для отображения данных модели.

Добавлено через 33 минуты
Сорри, не ответил на вопрос. Дальше с преобразованным типом работает сторонний модуль, как и что там - хз. Судя по доступному заголовочнику могу предположить, что UniformType нужен для корректного хранения данных в некоторой специфичной железке. Как конвертируется назад - тоже загадка. Все, что я могу сделать - а) построить UnifromType из поддерживаемого им типа данных, б) конвертнуть назад в любой другой поддерживаемый тип и посмотреть на bool& ok. Есть подозрение, что в конструкторе просто проставляется определенный флаг, который запоминает исходный тип данных и в дальнейшем определяет, во что можно конвертировать UniformType обратно.
 
Текущее время: 22:42. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru