我有此代码,当我编译它时,出现编译错误。
#include <iostream>
#include <string>
using namespace std;
struct Date{
int day;
int month;
int year;
};
class appointment{
public:
appointment(int d,int m,int y,string n);
private:
struct Date date;
string name;
};
int main()
{
appointment a(22,12,2019,"James");
}
appointment::appointment(int d,int m,int y,string n) :
date.day(d),date.month(m),date.year(y),name(n)
{
}
但是,当我注释构造函数并使用此版本的构造函数时,一切正常
appointment::appointment(int d,int m,int y,string n)
//date.day(d),date.month(m),date.year(y),name(n)
{
date.day=d;
date.month=m;
date.year=y;
name=n;
}
您不能像这样逐段地初始化对象。相反,使用聚合初始化一次即可初始化整个date
成员: