具有结构组件的类构造函数

Class constructor with structure components

本文关键字:构造函数 组件 结构      更新时间:2023-10-16

我在一个类中定义了一个构造函数,它接受5个参数来初始化字段。其中两个参数/字段来自Date结构。

Information(string NewName, Date start, Date finish,
            double newNumber, double newLevel);

这是正确的格式吗?

同样,我该如何在int main ()中输入参数呢?像这样的?如何将值放入结构参数中?它们要加引号吗?

Information arguments("Susan Jones", "3/5/5", "3/5/5", 15, 58);

日期结构:

 struct Date
  {
    int month;
    int day;
    int year;
  };

最好将const引用传递给构造函数中使用的非基本类型。所以制作数据const&,而不仅仅是副本。更具体地说:

Information(const string& NewName,const Date& start,const Date& finish,
          double newNumber, double newLevel);

还假设Date有一个构造函数,使用std::stringconst char*,您调用构造函数的方式是正确的(尽管看起来您正在调用另一个类的构造函数,称为Paycheck)。

否则代码看起来是合理的。

您展示的Information构造函数看起来很合理。对于中型或大型对象,您可能希望通过const Date&而不仅仅是Date,但对于像您这样的小型/简单/快速对象,复制不应该是那么大的问题。这是"正常"的方式:

Information(const string& NewName, const Date& start, const Date& finish,
      double newNumber, double newLevel);

但是,"3/5/5"不是构造Date实例的正确方法。有两种方法,如下所示。第一个更容易理解,但第二个代码要少得多。

Date start;
start.month = 3;
start.day = 5;
start.year = 5;
Date finish;
start.month = 3;
start.day = 5;
start.year = 5;
Information arguments("Susan Jones", start, finish, 15, 58);

Information arguments("Susan Jones", {3,5,5}, {3,5,5}, 15, 58);