c++ - 初始化时无法将“日期”转换为“int”作为错误
问题描述
我正在尝试默认复制,但出现此错误:
[错误] 无法在初始化中将 '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;
}
解决方案
Date d2{d1};
统一初始化仅在 C++11 及更高版本中可用,并且您的编译器似乎默认使用 C++03。为您的编译添加-std=c++11
标志(或更新您的编译器,GCC 从 GCC 6.1 开始默认使用 C++14 编译)
最终,您可以使用不同形式的初始化:
Date d2(d1);
Date d2 = d1;
推荐阅读
- javascript - Javascript Chrome extension not working, and inspect popup is grayed out. Why?
- ruby-on-rails - OpenStruct ruby 类型的对象如何反向属性
- django - 芹菜任务安排不同?
- c# - 使用 Xamarin.Forms 的 WPF 项目中不会显示视频
- java - Java 泛型类型转换
- python-3.x - 尝试在 vscode 中执行 azure 函数
- react-native - 当我们从 IOS 设备中保存的联系人中键入任何联系人姓名时,React Native TextInput autoCorrect={false} 不起作用
- node.js - Node JS 应用程序因 ERR_SOCKET_CANNOT_SEND 错误而崩溃
- vb.net - 从datatable填写数据库
- macos - Chef Habitat Command hab 在 Mac OS BIG sur 11.2 上不起作用:未加载库:/opt/mac-bootstrapper/embedded/lib/libiconv.2.dylib