复制
收藏
提问
全网
cdate cd2(2022, 3, 15)不存在从 "int" 转换到 "cdate" 的适当构造函数
3个月前
理解问题cdate cd2(2022, 3, 15)不存在从 "int" 转换到 "cdate" 的适当构造函数
已完成理解「cdate cd2(2022, 3, 15)不存在从 "int" 转换到 "cdate" 的适当构造函数」
展开阅读网页
错误原因分析
解决方案
1. 调整构造函数参数
- 示例代码:
这样定义的构造函数可以直接接受三个整型参数。25class CDate { int year, month, day; public: CDate(int y, int m, int d) : year(y), month(m), day(d) {} // 其他成员函数 };
2. 使用默认参数
- 示例代码:
通过提供默认参数,可以允许调用时不提供参数或只提供部分参数。8class CDate { int year, month, day; public: CDate(int y = 0, int m = 0, int d = 0) : year(y), month(m), day(d) {} // 其他成员函数 };
3. 重载构造函数
- 示例代码:
通过重载构造函数,可以同时支持两种不同的初始化方式。57class CDate { int year, month, day; public: CDate(int y, int m, int d) : year(y), month(m), day(d) {} CDate(int date) { year = date / 10000; month = (date % 10000) / 100; day = date % 100; } // 其他成员函数 };
4. 检查类定义
更专业一些
转笔记
专业
cdate cd2(2022, 3, 15)不存在从 "int" 转换到 "cdate" 的适当构造函数不在提醒