我正在一个有Time类和多个构造函数的项目中工作。通常,在编码时,我只有一个带有默认参数的构造函数,但是此程序的说明对我来说很混乱。
该类应具有默认的构造函数(无参数),该构造函数应初始化对象以使其表示数量0。
该类还应该具有一个带有单个整数参数的构造函数,该整数参数表示秒数-应该将其转换为Time对象的适当表示法。请注意,具有单个参数的此构造函数将是“转换构造函数”,该类型允许从“ int”到“ Time”的自动类型转换。如果参数为负,则默认Time对象代表0。
该类还应该具有一个构造函数,该构造函数带有4个参数,分别表示用于初始化对象的天,小时,分钟和秒。如果提供的任何值为负,则默认将Time对象表示为0。如果提供的任何一个值过高(但均为非负),则将该对象简化为适当的表示。
似乎它要我有3个构造函数,一个没有参数,一个带有一个参数作为将秒转换为时间的转换构造函数,一个带有4个参数初始化日,时,分和秒。但是,经过研究后,我发现该类中的构造函数不应超过2个。这对任何人有意义吗?
答案 0 :(得分:5)
但是,在进行了一些研究之后,我发现该类中的构造函数不应超过2个。
不知道你在哪里读,但这是错误的。
甚至std::string
和std::vector
之类的许多标准类型都具有更多的功能。
这对任何人有意义吗?
作业完成。您的主张没有。
一个类可以有多少个构造函数?
任意多。好吧,无论如何,只要编译器允许您编写。由于物理原因,必须有一些实际的限制,但是the standard recommends that this limit be at least 4096。
答案 1 :(得分:0)
日期和时间之类的东西很荒谬,显然至少需要四个,默认构造函数,复制构造函数,采用epoc的构造函数和采用SQL时间字符串的构造器