Я вызываю конструктор, и внезапно без объявления войны включается какая-то магия. Это не совсем правильно.
В конструкторе нужно выполнять минимум инициализационных действий. Тяжелую работу, а уж тем более looping с перехватом пользовательского ввода, не надо запускать из конструктора.
Давайте унесем логику разбора числа аргументов в main. Из main'а же будем дергать нужный mode.