Функция, которая должна принимать заданный аргумент c с указанным значением c - PullRequest
0 голосов
/ 04 мая 2020

скажем, в игровом проекте у меня есть класс "Враг". поэтому, когда вам нужно создать врага, нужно выбрать около 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, иначе вы получите ошибку или что-то еще

и то же самое относится к каждому вражескому конструктору. Как мне это сделать?

...