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

Приведение типа к другому классу - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Редактор строк! http://www.cyberforum.ru/cpp-beginners/thread902515.html
Ребят посмотрите пожалуйста нужно сделать чтобы строки удалялись, вставлялись, заменялись в файле! Как сделать чтобы я мог удалять не определенную строку, а вводил с клавиатуры какую строку удалить,...
C++ C++ деление чисел 0-30 значащих цифр Нужно смоделировать операцию деления двух целых чисел длиной до 30 десятичных цифр каждое. Результат выдать в форме +/- 0.m Е К, где длина мантиссы m - до 30 значащих цифр, а величина порядка К - до... http://www.cyberforum.ru/cpp-beginners/thread902514.html
C++ Определите в одновимерном числовом массиве число соседства с взаимнообратных чисел
Определите в одновимерном числовом массиве число соседства с взаимнообратных чисел.
C++ Открытие не в консоли!
Всем доброго времени суток! У меня назрел вопрос по поводу открытия скомпилированных файлов. Мне нужно чтобы они открывались не в консоли, а в к примеру новом окне, которое подстраивается под...
C++ Даны целочисленный массив А, состоящий из 12 элементов http://www.cyberforum.ru/cpp-beginners/thread902498.html
Даны целочисленный массив А, состоящий из 12 элементов. Начиная со второго нечетного элемента, подилить все остальные элементы массива С на этот нечетный елемент.Вивесты на печать заданий и...
C++ Одномерный Массив. С функцией! Задан одномерный массив целых чисел. Вывести на экран массив, составленный из элементов исходного массива, которые не равны заданному значению. Заданное значение вводится с клавиатуры, массив... подробнее

Показать сообщение отдельно
DrobyshevAlex
1169 / 1119 / 16
Регистрация: 31.05.2012
Сообщений: 3,059
15.06.2013, 16:43  [ТС]
Цитата Сообщение от Desu_Is_A_Lie Посмотреть сообщение
Как только у B появятся виртуальные методы всё сломается.
Не появятся. Если появятся, переделаю

Суть в чём. Есть класс, и у него несколько тысяч объектов. Все одинаковые поля содержат и методы.
Но есть несколько десятков объектов с определённым типом, которым нужно дополнительные провеки.
И ещё несоклько десятков, которым нужны тоже дополнительные, но другие.
Вот я и решил, может стоит сделать наследников, и только в них описать эти методы, а потом делать что то типа

C++
1
2
3
4
5
6
7
8
9
10
11
class A
{
...
    B* ToB() { return m_type == TYPE_B ? (B*)this : NULL; }
    C* ToC() { return m_type == TYPE_C ? (C*)this : NULL; }
...
};
if (B* b = a->ToB())
    b->foo();
if (C* c = a->ToC())
    c->bar();
если нужны будут дополнительные поля или виртуальные методы, тогда переделаю, но пока не вижу надобности в них. Ну кроме того что деструктор виртуальный у класса A.
На вид пока всё работает
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru