0

我在一个类中定义了一个构造函数,它接受 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;
  };
4

2 回答 2

1

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

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

还假设 Date 有一个构造函数,std::string或者const char*您调用构造函数的方式是正确的(尽管您似乎正在调用另一个名为 的类的构造函数Paycheck)。

否则代码似乎是合理的。

于 2013-03-11T19:10:53.873 回答
0

您显示的Information构造函数看起来很合理。对于中型或大型对象,您可能希望通过const Date&而不是 just 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);
于 2013-03-11T19:41:30.667 回答