一个类可以有多少个构造函数?

时间:2019-02-17 19:43:02

标签: c++ constructor

我正在一个有Time类和多个构造函数的项目中工作。通常,在编码时,我只有一个带有默认参数的构造函数,但是此程序的说明对我来说很混乱。

  • 该类应具有默认的构造函数(无参数),该构造函数应初始化对象以使其表示数量0。

  • 该类还应该具有一个带有单个整数参数的构造函数,该整数参数表示秒数-应该将其转换为Time对象的适当表示法。请注意,具有单个参数的此构造函数将是“转换构造函数”,该类型允许从“ int”到“ Time”的自动类型转换。如果参数为负,则默认Time对象代表0。

  • 该类还应该具有一个构造函数,该构造函数带有4个参数,分别表示用于初始化对象的天,小时,分钟和秒。如果提供的任何值为负,则默认将Time对象表示为0。如果提供的任何一个值过高(但均为非负),则将该对象简化为适当的表示。

似乎它要我有3个构造函数,一个没有参数,一个带有一个参数作为将秒转换为时间的转换构造函数,一个带有4个参数初始化日,时,分和秒。但是,经过研究后,我发现该类中的构造函数不应超过2个。这对任何人有意义吗?

2 个答案:

答案 0 :(得分:5)

  

但是,在进行了一些研究之后,我发现该类中的构造函数不应超过2个。

不知道你在哪里读,但这是错误的。

甚至std::stringstd::vector之类的许多标准类型都具有更多的功能。

  

这对任何人有意义吗?

作业完成。您的主张没有。

  

一个类可以有多少个构造函数?

任意多。好吧,无论如何,只要编译器允许您编写。由于物理原因,必须有一些实际的限制,但是the standard recommends that this limit be at least 4096

答案 1 :(得分:0)

日期和时间之类的东西很荒谬,显然至少需要四个,默认构造函数,复制构造函数,采用epoc的构造函数和采用SQL时间字符串的构造器