Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 25.12.2012, 09:16   #11
rrrFer
Санитар
Старожил
 
Аватар для rrrFer
 
Регистрация: 04.10.2008
Сообщений: 2,577
По умолчанию

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

Если я все верно понял - то решение Ezhik Kihze вроде бы адекватное (тока BotMap в этом случае можно ваще выкинуть) - если тебе надо где-то использовать просто карту - пиши Map<Field>, если же нужна карта бота - Map<BotField>

но можно и как-то иначе разрулить это... Например в map Засунуть указатель на field. В конструкторе map выделяешь по нему память под field, а в конструкторе BotMap - память под BotField.

Что выбирать - сам решай, исходя из того, что ты там дальше делать собираешься. Если в BotMap должна быть какая-то хитрая логика - то может быть лучше второй вариант или в первом варьянте написать специализацаю шаблона для Map<BotField> можно...
rrrFer вне форума Ответить с цитированием
Старый 25.12.2012, 09:19   #12
rrrFer
Санитар
Старожил
 
Аватар для rrrFer
 
Регистрация: 04.10.2008
Сообщений: 2,577
По умолчанию

а вот тока щас прочитал:
Цитата:
я хочу чтобы botmap умел все то же, что и map + пару операций для которых нужны клетки с приоритетом
тогда шаблоны тебе не помогут (красивого кода не получится точно), используй вот это:
Цитата:
но можно и как-то иначе разрулить это... Например в map Засунуть указатель на field. В конструкторе map выделяешь по нему память под field, а в конструкторе BotMap - память под BotField.
и виртуальные функции
rrrFer вне форума Ответить с цитированием
Старый 25.12.2012, 11:53   #13
denrubun
Пользователь
 
Регистрация: 24.12.2012
Сообщений: 82
По умолчанию

вариант с шаблонами мне кажется легче, а почему код попортится?
denrubun вне форума Ответить с цитированием
Старый 25.12.2012, 12:08   #14
sVasilich
Форумчанин
 
Аватар для sVasilich
 
Регистрация: 16.12.2009
Сообщений: 224
По умолчанию

А если как-то так сделать:

Код:

class field{
  char v;
};

class botfield:public field{
  short prior;
};

class map{

public:
  map(field);

private:
  field f;
};

class botmap {

public:
  botmap();

private:
  botfield f;
  map _map;

};

bootmap::bootmap() : _map(f) {};
------
Похоже, уже написали)
Цитата:
но можно и как-то иначе разрулить это... Например в map Засунуть указатель на field. В конструкторе map выделяешь по нему память под field, а в конструкторе BotMap - память под BotField.
Люди бывают 10 типов: те, кто понимают двоичную систему счисления, и те, кто не понимают...

Последний раз редактировалось sVasilich; 25.12.2012 в 12:12.
sVasilich вне форума Ответить с цитированием
Старый 25.12.2012, 12:21   #15
Ezhik Kihze
Форумчанин
 
Регистрация: 24.12.2012
Сообщений: 639
По умолчанию

Цитата:
тогда шаблоны тебе не помогут (красивого кода не получится точно)
Это почему? БотФилд получит все что делает меп + свое...
ICQ: 677936656 Gmail: ekEmbed@gmail.com
Ezhik Kihze вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
альтернатива множественному наследованию the_deer_one C# (си шарп) 1 10.10.2012 10:08
Вопрос по множественному наследованию классов с++ GartesK Общие вопросы C/C++ 7 14.11.2011 22:00
задача по наследованию в С++ Евгений1221 Помощь студентам 1 12.05.2011 01:13
Вопрос по наследованию katbka Помощь студентам 0 13.05.2010 18:31