我在一个类中定义一个构造函数,它接受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;
};
答案 0 :(得分:1)
最好将const引用传递给构造函数中使用的非基本类型。因此,请创建数据const&
,而不仅仅是副本。更具体一点:
Information(const string& NewName,const Date& start,const Date& finish,
double newNumber, double newLevel);
还假设Date有一个构造函数采用std::string
或const char*
的方式调用构造函数是正确的(尽管看起来你正在调用另一个名为Paycheck
的类的构造函数)
否则代码似乎合理。
答案 1 :(得分:0)
您展示的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);