半年学编程 2014-05-26 07:48 采纳率: 0%
浏览 4255

vs2010提示不存在用户定义的从Date到const Date的转换

Date ReadDate(const string& prompt)
{
Date dt;
cout< cin>>dt;
return dt;
}

void SetDob(const Date& dtb)
{
dob=dtb;
}
重载操作符
ostream& operator<<(ostream& os,Date& eml)
{
int mo=0,da=0,yr=0;
eml.GetDate(mo,da,yr);
os< return os;
}
istream& operator>>(istream& is,Date& eml)
{
int mo,da,yr;
is>>mo>>da>>yr;
if(is)
eml.SetDate(mo,da,yr);
else
eml.SetDate(0,0,0);
return is;
}(其中setDate和GetDate中另外定义的函数,这个应该没有问题)
这两个函数是在之前定义了的,第一个是定义在主函数前面声明的,第二个是在类person的头文件中定义的成员函数,
当我在主函数中调用pPerson->SetDob(ReadDate("Date of birth"));时,提示我vs2010提示不存在用户定义的从Date到const Date的转换,这是为什么呀,还有就是我在Date类中重载了输入输出操作符,为什么主函数中当cin>>一个Date对象时,提示没有与这些操作数匹配的>>操作符(文件不在一个cpp中,主程序包含了各个头文件的声明),求大神指点一下这是为什么呀

  • 写回答

2条回答 默认 最新

  • muliansb 2014-05-26 09:13
    关注

    Date ReadDate(const string& prompt)
    的返回值是Date 类型
    void SetDob(const Date& dtb)
    的参数是const Date类型,所以会报错
    至于运算符重载,没有看到代码,所以。。。。。。。。。。。。。。。

    评论

报告相同问题?

悬赏问题

  • ¥15 安卓adb backup备份应用数据失败
  • ¥15 eclipse运行项目时遇到的问题
  • ¥15 关于#c##的问题:最近需要用CAT工具Trados进行一些开发
  • ¥15 南大pa1 小游戏没有界面,并且报了如下错误,尝试过换显卡驱动,但是好像不行
  • ¥15 没有证书,nginx怎么反向代理到只能接受https的公网网站
  • ¥50 成都蓉城足球俱乐部小程序抢票
  • ¥15 yolov7训练自己的数据集
  • ¥15 esp8266与51单片机连接问题(标签-单片机|关键词-串口)(相关搜索:51单片机|单片机|测试代码)
  • ¥15 电力市场出清matlab yalmip kkt 双层优化问题
  • ¥30 ros小车路径规划实现不了,如何解决?(操作系统-ubuntu)