【发布时间】:2021-11-06 17:25:39
【问题描述】:
我是 C++ 新手,我很想知道您是否可以创建多个具有相同参数的构造函数。比如说我有这个班级,我有病人,我有他们的名字和年龄。我知道我可以像这样创建一个构造函数:
class hospital {
hospital(){
setname("John");
setage(24);
}
private:
string name;
int age;
};
但是我可以像上面那样创建另一个构造函数吗?比如:
hospital patientBilly(){
setname("Billy");
setage(32);
}
【问题讨论】:
-
如何知道调用哪个构造函数?
-
您可以通过为构造函数提供名称和年龄作为参数来做到这一点。您是否计划为可能存在的每个可能的姓名和年龄组合创建一个构造函数? (而且这种类型可能应该称为“患者”,而不是“医院”。)
-
hospital patientBilly()不是构造函数,它是一个成员函数,你只能在已经存在的对象上调用它。构造函数没有明确的返回类型,因为它们的名称与类名相同。 -
@Kaldrr:
static hospital patientBilly()方法并非闻所未闻。它有时被称为“命名构造函数模式”。 -
btw name
hospital对于似乎是Person的东西来说很奇怪。
标签: c++ class constructor overloading