![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| exceilence |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 30 Регистрация: 22.6.2009 Где: Москва Репутация: нет Всего: нет |
Как можно сделать так чтобы в классе А была ссылка на некий класс X, Y, Z или ещё какой, если известно что он наследовал интерфейс класс iB ?????????
Фигур вобщем конкретных много и все они наследовали интерфейс фигура А теперь ячейка игральной доски должна присваивать ссылку кого-нибудь а кого не ясно!!!!!!!!!! когото из списка разных объектов |
|||
|
||||
| mes |
|
|||
|
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 144 Всего: 250 |
ну так ссылку на iB и храните.. Правда доступен будет только интерфейс iB, a для получения интерфейса Х нужно приводить (dynamic_cast) или, что зачастую лучше, пользовать визетера. |
|||
|
||||
| exceilence |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 30 Регистрация: 22.6.2009 Где: Москва Репутация: нет Всего: нет |
Есть ещё такая вещь как union но в моём случае она не в тему наверное
|
|||
|
||||
| mes |
|
|||
|
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 144 Всего: 250 |
||||
|
||||
| exceilence |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 30 Регистрация: 22.6.2009 Где: Москва Репутация: нет Всего: нет |
undefined reference to `vtable for
Добавлено через 8 минут и 40 секунд class iFigure { public: virtual ~iFigure(){}; virtual void move( Coordinates, Coordinates )=0; }; нолик с равно дописал и таинственным образом ошибка пропала зачем нолик?????? |
|||
|
||||
| mes |
|
|||
|
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 144 Всего: 250 |
показывает что у виртуальной функции нет тела.. Ошибка линковки пропадет, но класс будет абстрактным и создать объект такого класса будет нельзя..
для подробностей читайте
Добавлено @ 20:47 гугль в помощь если не имеется под рукой хорошей книжки.. Это сообщение отредактировал(а) mes - 30.12.2009, 20:47 |
|||
|
||||
| exceilence |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 30 Регистрация: 22.6.2009 Где: Москва Репутация: нет Всего: нет |
virtual ~iFigure(){};
тильда зачем??? деструктор? Добавлено через 1 минуту ссылка на потомка работает если взять ссылку на интерфейс а потом ей присвоить имя потомка так что норм |
|||
|
||||
| mes |
|
|||
|
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 144 Всего: 250 |
тильдой отличается деструктор от конструктора. Добавлено через 1 минуту и 39 секунд
если публичное наследование, то спокойно инициализируется ссылка на базовый объектом класса-наследника (без всяких доп. манипуляций) |
|||
|
||||
| exceilence |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 30 Регистрация: 22.6.2009 Где: Москва Репутация: нет Всего: нет |
Высококачественный код... наваял за вечер. Это шашки. Каркас. Вобщем выделение класса под конкретную фигуру надо было только для того чтобы проверить можно ли двигаться фигуре или нет олт точки А в точку Б
фигура хорошо бы еслиб смотрела только на относительное положение ))) Но как я понимаю придётся фигуре влезать в информацию доски и смотреть есть ли кто на пути и тогда уж принимать решение Ну ладно Все равно более менее логично ))
Добавлено через 4 минуты и 29 секунд хорошо бы запаковать обход доски в паттерн Итератор но мне нужны координаты... так что хз ... придётся везде так некрасиво эти два цикла гонять |
|||
|
||||
| mes |
|
|||
|
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 144 Всего: 250 |
фигура не должна отвечать за коррекнтость хода. Она просто не может знать о всех правилах мира, в которых живет. создайте отдельный класс (например Rules) который будет отвечать за это, тогда сможете впоследствии легко на одной основе сделать несколько вариантов игр. |
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |