无法在初始化时将“日期”转换为“整数”,因为出现错误

我正在尝试默认复制,但出现此错误:

  

[错误]在初始化时无法将'Date'转换为'int'   [警告]扩展的初始化程序列表仅适用于-std = c ++ 11或-std = gnu ++ 11

//默认复制

#include<iostream>
class Date{
    public:
    int day;
    int month;
    int year;

        void setday(int );
        void setmonth(int);
        void setyear(int);
};
void Date::setday(int d){
    day=d;}
    void Date::setmonth(int m){


    month=m;
}
void Date::setyear(int y){

    year=y;
}
int main(){
Date d1;
d1.setday(5);
d1.setmonth(6);
d1.setyear(7);
std::cout<<d1.day<<d1.month<<d1.year;
Date d2{d1};
std::cout<<d2.day<<d2.month<<d2.year;
return 0;   
}
liang88474754 回答:无法在初始化时将“日期”转换为“整数”,因为出现错误

Date d2{d1};

统一初始化仅在C ++ 11及更高版本中可用,并且看来您的编译器默认情况下使用C ++ 03。在您的编译中添加-std=c++11标志(或更新您的编译器,默认情况下,GCC从GCC 6.1开始使用C ++ 14编译)

最终,您可以使用不同形式的初始化:

Date d2(d1);
Date d2 = d1;
本文链接:https://www.f2er.com/3161360.html

大家都在问