|
4 / 4 / 1
Регистрация: 10.07.2011
Сообщений: 52
|
|
Конфликт одноименных полей классов из разных Namespace08.11.2012, 12:14. Показов 6151. Ответов 26
Метки нет (Все метки)
У меня есть задача следующего плана,
Хотелось бы в ПО иметь несколько однотипных классов Namespace1 Namespace2 Namespace3 Каждый в будущем хотело бы скомпилировать отдельной динамической библиотекой. Но пока это не суть... В namespace есть свои структуры, конструкторы, массивы, но они имеют одинаковые имена и вызовы, что мне позволяет компилировать ПО с любым namespace, только меняя её в директивах. Теперь я хочу получить возможность переключаться между ними динамически. Когда я подключаю все Namespace я получаю ошибку рода...: Ошибка 6 "cStatus" - неоднозначная ссылка между "Class1.cStatus" и "Class2.cStatus" Как мне написать это всё правильно?
0
|
|
| 08.11.2012, 12:14 | |
|
Ответы с готовыми решениями:
26
Использование одинаковых классов разных namespace Массив разных классов. Как добратся до всех полей этих классов? Связывание значений полей и свойств объектов разных классов |
|
713 / 680 / 126
Регистрация: 30.03.2012
Сообщений: 1,124
|
|||||||||||
| 08.11.2012, 12:23 | |||||||||||
|
вместо имени класса которое дублируется напишите полностью с namespace
т.е. вместо
0
|
|||||||||||
|
4 / 4 / 1
Регистрация: 10.07.2011
Сообщений: 52
|
||||||
| 08.11.2012, 12:26 [ТС] | ||||||
|
Мне нужно, что бы в одном варианте
Я не могу явно указывать, к которому namespace относится cStatus.
0
|
||||||
|
713 / 680 / 126
Регистрация: 30.03.2012
Сообщений: 1,124
|
|
| 08.11.2012, 12:59 | |
|
вы динамически получаете сборку с классом?
также динамически получите список классов и из нужного вам класса выковыряйте namespace посмотрите здесь, думаю близко к вашей теме http://stackoverflow.com/quest... n-assembly
0
|
|
|
4 / 4 / 1
Регистрация: 10.07.2011
Сообщений: 52
|
||||||||||||
| 08.11.2012, 14:02 [ТС] | ||||||||||||
|
идея в следующем: меня есть
мне нужно в зависимости от переменной varA использовать либо один класс, либо второй В частности в name1 класс работы с имитатором, в name2 класс работы с живым устройством.
cClass присутствует в обоих namespace. Предполагаю, что я не верно вообще программирую... то есть обычно это пишут по другому. Но как?
0
|
||||||||||||
|
713 / 680 / 126
Регистрация: 30.03.2012
Сообщений: 1,124
|
||||||
| 08.11.2012, 14:23 | ||||||
|
возможно неправильно советую:
вам нужна ОБЩАЯ часть реализации этих классов? т.е. вы знаете что в этом классе есть метод DoSomething который есть во всех реализациях, называется одинаково и т.д., т.е.вот эти общие части вы хотите использовать? создайте интерфейс содержащий нужные методы, реализуйте во всех классахusing
1
|
||||||
|
Master of Orion
|
||||||
| 08.11.2012, 14:29 | ||||||
0
|
||||||
|
4 / 4 / 1
Регистрация: 10.07.2011
Сообщений: 52
|
|
| 08.11.2012, 16:16 [ТС] | |
|
Tessen, это очень красиво,
попробую как это реализуется у меня, о результатах отпишусь, уверен возникнет вторичный вопрос по части: как потом перейти в dll, хотелось бы, что бы NS1 - реализовался в отдельную ns1.dll NS2 - реализовался в отдельную ns2.dll что при этом делать с I...? ps: Psilon, спасибо, но возникает проблема с объявлением "var"... в теории у меня вопрос в этом и был...
0
|
|
|
4 / 4 / 1
Регистрация: 10.07.2011
Сообщений: 52
|
|
| 08.11.2012, 16:36 [ТС] | |
|
0
|
|
|
123 / 121 / 6
Регистрация: 21.12.2011
Сообщений: 348
|
|
| 08.11.2012, 16:45 | |
|
0
|
|
|
|
||
| 10.11.2012, 13:51 | ||
|
По идее можно интерфейс вынести в третью библиотеку и из библиотек ссылаться на неё (что мне кажется не во всех случаях оправданно) или из библиотек ссылаться на саму программу, то есть в самой проге определить интерфейс. Или какие есть ещё вариант? Добавлено через 15 минут А нет, нельзя сделать интерфейс в самой проге, потому что при попытке добавить ссылку на библиотеку, если библиотека уже ссылается на прогу создаст циклическую зависимость. Видимо придётся делать третью библиотеку с интерфейсами.
0
|
||
|
|
|
| 10.11.2012, 14:00 | |
|
Вот держи
Есть эксешник ConsApp_PlusTwoDll (название делал, когда ещё думал, что будет 2 библиотеки). И 3 библиотеки FirstLibrary, SecondLibrary и MainLibrary ConsApp_PlusTwoDll ссылается на все 3 библиотеки. FirstLibrary и SecondLibrary ссылаются на MainLibrary.
0
|
|
|
4 / 4 / 1
Регистрация: 10.07.2011
Сообщений: 52
|
||
| 12.11.2012, 11:09 [ТС] | ||
|
Вариант с интерфейсом работает просто изумительно, все классы устройств объединились под одной шапкой, но вот с dll ещё не пробовал... казалось бы не должно быть проблем... файл интерфейса оставить в проекте и в интерфейс подключить две наследующие его библиотеки... но может я и не прав... не всё так просто и русло не без подводных каменей... получитс - отпишусь
0
|
||
|
Master of Orion
|
|||||||||||
| 12.11.2012, 11:46 | |||||||||||
|
Зачем вообще по разным неймспейсам распихивать? Можно все вшить в один класс, а классы называть функциональней, а не просто одним и тем же именем) Логика вся та же, только непонятно: неужели у вас эти классы настолько перегружены, что нужно писать отдельные неймспейсы? То есть все то же самое, только вместо
0
|
|||||||||||
|
4 / 4 / 1
Регистрация: 10.07.2011
Сообщений: 52
|
||
| 12.11.2012, 11:52 [ТС] | ||
|
Количество видеокамер в перспективе не ограничено. Потребителю передаётся софт с библиотекой его камеры (или тех что уже есть в наличии). Так же будет ещё и SDK, который бует описывать работу с камерой. Хотя получается, что он будет унивверсальный. Сейчас разработка классов под камеры идёт параллельно. и объединяются только файлом интерфейса... Ну вот не знаю... может быть вы и правы и не нужно городить кучу dll библиотек под каждую камеру... а ограничиться одной, которую постоянно обновлять и дорабатывать... Но изначально идеология была такая - для каждой камеры своя dll.
0
|
||
|
Master of Orion
|
|||||||||||
| 12.11.2012, 11:55 | |||||||||||
|
Pyhesty, да пожалуйста, почему бы нет, но почему нельзя в один неймспейс закинуть?
camera1.dll
1
|
|||||||||||
|
4 / 4 / 1
Регистрация: 10.07.2011
Сообщений: 52
|
|||||||
| 12.11.2012, 12:26 [ТС] | |||||||
|
черт... я что-то не подумал об этом... зашоренность...
нужно попробовать... Добавлено через 26 минут если классы будут разные, то невозможно выполнить структуру:
случае присвоение не получится. Когда мы это обсуждали решили, что работать с интерфейом удобнее и правильнее.
0
|
|||||||
|
Master of Orion
|
|||||||||||||||||||||
| 12.11.2012, 12:31 | |||||||||||||||||||||
1
|
|||||||||||||||||||||
| 12.11.2012, 12:31 | |
|
Помогаю со студенческими работами здесь
20
наследование одноимённых классов Получение результатов выборки из одноименных полей Копирование значений однотипных одноименных полей класса Вызов одноименных функций классов наследников из родительского класса #include <list> - конфликт using namespace std с другими инклюдами Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога
SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
|
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога
Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip"
Извлеките архив и вы увидите. . .
|
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога
Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д.
Сборка примера
Скачайте. . .
|
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
|
|
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net
REST сервисы временно не работают, только через Web.
Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
|
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
|
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
|
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма).
На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
|