скажем, в игровом проекте у меня есть класс "Враг". поэтому, когда вам нужно создать врага, нужно выбрать около 5 или, скажем, 20 врагов, хранящихся в перечислении, и вы просто выбираете своего врага, записав его тип в аргументе конструктора, чтобы он выглядел примерно так:
enum type
{
zombie, monster, MyDumpAssThatDoesn'tKnowHowToCode, vampire ....
};
Enemy (type)
{
set the enemy sprite bla bla bla.....
}
это нормально, я могу легко создать врага любого типа, не так ли? но проблема возникает, когда каждый враг принимает разные значения, скажем, например:
Enemy(type, vector2 Pos) // the zombie also takes the position of the player to attack
Enemy(type, Weapon W) // the monster take a weapon and not a position....
, поэтому я, очевидно, использую разные конструкторы для разных типов, и это совершенно нормально, однако у меня будут проблемы, если я вызову неправильный конструктор противника, скажем если я позвоню
Enemy(type, vector2 Pos)
и передам монстра вместо зомба ie, что мне не помешает, и я надеюсь, вы поймете, что я пытаюсь сказать здесь
в основном я хочу как-то форсировать аргумент, поэтому, когда вы вызываете это:
Enemy(type, vector2 Pos)
тип врага должен быть zomb ie, иначе вы получите ошибку или что-то еще
и то же самое относится к каждому вражескому конструктору. Как мне это сделать?