Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
16 / 0 / 2
Регистрация: 10.11.2012
Сообщений: 117

Кривой дизайн интерфейса

09.01.2018, 13:37. Показов 647. Ответов 0
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день!

Помогите пожалуйста соориентироваться и решить проблему.

Идея вот в чем:

Есть класс родитель, он абстрактный.
C++
1
2
3
4
5
6
class parent
{
  int  id = 0;
 public:
  virtual int get_id(const class_a& A) = 0;
};
Этот класс задает "манеру" общения с его потомками и только.
Что я хочу: вызывать у всех потомков класса parent одну и ту же функцию get_id, которая делает всегда одно и тоже, но набор входных данных (их типов, кол-ва) меняется от потомка к потомку.
Хочу в эту функцию передавать структуру/класс, а не массивы данных.
И возникает проблема, что передать потомки класса class_a в get_id я могу, но использовать функции потомка не могу, т.к. они не описаны в class_a. Использовать обратную схему с множественным наследованием я не хочу, ибо не хочу создавать помойку.

Планирую поэтому использовать внутри функции get_id потомков dynamic_cast.

Что вы про это скажите, какие минусы? По возможности дайте пожалуйста еще и общие рекомендации по подобному дизайну.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
class class_a{};
 
class class_b : public class_a
{
  
};
 
class parent
{
  int  id = 0;
 public:
  virtual int get_id(const class_a& A) = 0;
};
 
class child1 : public parent
{
private:
  int id = 1;
public:
  int get_id(const class_a& A)
  {
    const class_b&    B = dynamic_cast<const class_b&>(A);
    return id;
  }
};
 
class family
{
private:
  parent *primary;
public:
  int choose(int id)
  {
    switch (id)
    {
    case 1:
       primary = new child1();
       break;
 
    default:
      break;
    }
  }
};

dynamic_cast<const class_b&>(A); - выдает ошибку: error C2683: 'dynamic_cast' : 'class_a' is not a polymorphic type

Добавлено через 10 минут
С ошибкой разобрался) Забыл виртуальную функцию написать в классе class_a.
Жду ремарок по дизайну
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
09.01.2018, 13:37
Ответы с готовыми решениями:

пессимизация, кривой дизайн?
Есть у меня сайтик. Долгие годы держался на достойных позициях в Яндексе. Но что-то случилось, за последние несколько недель скатился с 4й...

Дизайн интерфейса
Может кто знает, как поменять дизайн интерфейса в 7,7. Добавить иконки по-крупнее, цвет фона поменять, там подлжечку поставить.. вообщем...

дизайн интерфейса
Доброго времени изучая андроид основное внимание уделял кодингу, но совсем забыл об интерфейсе. и вот столкнулся с проблеммами адаптации...

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
09.01.2018, 13:37
Помогаю со студенческими работами здесь

Дизайн сайтов (desktop и адаптивный дизайн), баннеров и логотипов
Добрый день! Меня зовут Катя. Я - начинающий дизайнер. Рисую за гроши сайты (desktop и адаптивный дизайн), баннеры и логотипы. Моя...

По уравнению кривой второго порядка определить ее тип и привести уравнение кривой к каноническому виду
По уравнению кривой второго порядка определить ее тип и привести уравнение кривой к каноническому виду ...

Найти уравнение кривой на плоскости, если угол касательной и длина кривой заданы параметрически
Фиксированный единичный вектор скользит по параметрически заданной кривой,прочерчивая линейчатую поверхность.Какое будет уравнение кривой...

Написать функцию, которая принимает на вход коэффициенты уравнения кривой 2-го порядка и возвращает тип кривой
Здравствуйте! Помогите пожалуйста! Очень срочно! Написать функцию, которая принимает на вход числа a11, a12, a22, b1,b2, с-коэффициенты...

Дизайн выпадающего меню под дизайн обычного
Здравствуйте, у меня то есть меню, но, есть одно но... Есть меню в стиле лава-лампы, и я хочу чтобы при уменьшении ширины экрана,...


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru