Сколько конструкторов может иметь один класс? - PullRequest
0 голосов
/ 17 февраля 2019

Я работаю над проектом, в котором у меня есть класс Time и несколько конструкторов.Обычно при кодировании у меня будет только один конструктор с параметрами по умолчанию, но инструкции для этой программы меня смущают.

  • Класс должен иметь конструктор по умолчанию (без параметров), который должен инициализировать объект так, чтобы он представлял величину 0.

  • Класс также должен иметь конструктор с одним целочисленным параметром, который представляет количество секунд, которое должно быть переведено в соответствующую запись для объекта Time.Обратите внимание, что этот конструктор с одним параметром будет «конструктором преобразования», который позволяет автоматически преобразовывать типы из «int» в «Time».Если параметр отрицательный, по умолчанию объект Time представляет 0.

  • В классе также должен быть конструктор, который принимает 4 параметра, представляющих дни, часы, минуты и секунды для использования.для инициализации объекта.Если какое-либо из предоставленных значений является отрицательным, по умолчанию объект Time представляет 0. Если какое-либо из предоставленных значений слишком велико (но все неотрицательные), упростите объект до соответствующего представления.

Похоже, мне нужно иметь 3 конструктора, один без параметров, один с одним параметром в качестве конструктора преобразования для преобразования секунд во время и один с 4 параметрами, инициализирующими день, часы, минуты и секунды.Однако после некоторых исследований я обнаружил, что в классе не должно быть более двух конструкторов.Имеет ли это смысл для кого-либо?

Ответы [ 2 ]

0 голосов
/ 17 февраля 2019

с чем-то вроде даты и времени - это нелепое предположение, очевидно, что нужны как минимум четыре, конструктор по умолчанию, конструктор копирования, конструктор, который принимает epoc, и конструктор, который принимает строку времени SQL

0 голосов
/ 17 февраля 2019

Однако после некоторого исследования я обнаружил, что в классе не должно быть более двух конструкторов.

Не знаю, где вы это читали, но это неправильно.

Даже множество стандартных типов, таких как std::string и std::vector, имеют больше этого.

Имеет ли это смысл для кого-либо?

Назначение делает.Ваша заявка отсутствует.

Сколько конструкторов может иметь один класс?

Сколько угодно.Ну, во всяком случае, столько, сколько ваш компилятор позволяет вам писать.Должен быть некоторый практический предел из-за физики, но стандарт рекомендует, чтобы этот предел был не менее 4096 .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...