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

问题描述

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中,主程序包含了各个头文件的声明),求大神指点一下这是为什么呀

解决方案

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

解决方案二:

1.pPerson->SetDob(ReadDate("Date of birth"));分成两段写,估计是函数返回的一个临时对象的副本只能按值传递。
2.operator>>可能只是针对一种数据类型定义了,你输入的数据类型和定义的不匹配

时间: 2025-01-21 07:53:22

c++-vs2010提示不存在用户定义的从Date到const Date的转换的相关文章

excel提示用户定义类型未定义怎么办

  对象未定义时将产生此类错误: 一种典型的情况就是在定义对象时未正确创建对象本身而导致在编译时产生"用户定义类型未定义"的错误提示. 对此小编物提供以下通用定义外部对象的方法: Sub 定义并引用外部对象() 'Word后期绑定示例 Dim wdapp As Object Dim wd As Object Dim tb As Object Set wdapp = CreateObject("word.application") '打开一个word运用环境 wdap

vb6 0-VB还原数据库问题,提示用户定义类型未定义

问题描述 VB还原数据库问题,提示用户定义类型未定义 代码如下: If Text1.Text = "" Then MsgBox "请选择要恢复的数据文件!", vbInformation, "提示" Exit Sub Else ret = MsgBox("数据恢复操作将会覆盖以前的所有数据并且覆盖后无法恢复,您确定要进行恢复操作吗?", vbQuestion + vbOKCancel, "提示") If r

调试SQL Server的存储过程及用户定义函数

server|存储过程|函数 1.在查询分析器中调试 查询分析器中调试的步骤如下:    SQL 2000查询分析器        --左连的对象浏览器(没有的话按F8)        --对象项中        --右键调试的存储过程        --调试        --输入参数(必须输入所有的参数,包括默认值/输出参数        --点击执行        --出现一个浮动工具条        --上面有单步执行,断点设置等 按F11是单步执行. 如果要运行到指定行,只需要将光标移

DB2用户定义函数实现多种语言的排序

当在 DB2 UDB 数据库中存储多语种数据时,Unicode 往往是惟一一种能够适应整个数据范围的编码.DB2 可以存储和处理 Unicode 数据,但是它的排序功能只限于二进制排序和三种文化排序.另外,一个数据库只能有一种排序规则,这是在创建数据库时决定的.对于需要支持多种语言的用户和数据的数据库,这些排序限制是一个明显的难题. IBM 创建了一个用于管理 Unicode 数据的函数库,称为 ICU(International Components for Unicode).这个库为 C 和

LINQ to SQL语句(21)之用户定义函数

用户定义函数 我们可以在LINQ to SQL中使用用户定义函数.只要把 用户定义函数拖到O/R设计器中,LINQ to SQL自动使用FunctionAttribute属性 和ParameterAttribute属性(如果需要)将其函数指定为方法.这时,我们只需 简单调用即可. 在这里注意:使用用户定义函数的时候必须满足以下形 式之一,否则会出现InvalidOperationException异常情况. 具有正确映 射属性的方法调用的函数.这里使用FunctionAttribute属性和 P

LINQ体验(15)——LINQ to SQL语句之用户定义函数

用户定义函数 我们可以在LINQ to SQL中使用用户定义函数.只要把用户 定义函数拖到O/R设计器中,LINQ to SQL自动使用FunctionAttribute属性和 ParameterAttribute属性(如果需要)将其函数指定为方法.这时,我们只需简 单调用即可. 在这里注意:使用用户定义函数的时候必须满足以下形式 之一,否则会出现InvalidOperationException异常情况. 具有正确映射 属性的方法调用的函数.这里使用FunctionAttribute属性和 P

C++中用户定义的转换

(1)用户定义的转换的必要性: 我们希望能够在SmallInt对象和其他SmallInt对象或者内置算术类型的对象之间进行加减操作,我们要通过提供6个SmallInt操作符函数来实现对这些操作的支持: class SmallInt ...{ friend operator+( const SmallInt &, int ); friend operator-( const SmallInt &, int ); friend operator-( int, const SmallInt &a

Sqlserver浅谈用户定义表类型

1.1 简介 SQL Server 中,用户定义表类型是指用户所定义的表示表结构定义的类型.您可以使用用户定义表类型为存储过程或函数声明表值参数,或者声明您要在批处理中或在存储过程或函数的主体中使用的表变量. 若要创建用户定义表类型,请使用CREATE TYPE语句.为了确保用户定义表类型的数据满足特定要求,您可以对用户定义表类型创建唯一约束和主键. 1.2 使用例题 在创建用户定义表类型前先建立一个数据库表 USE [Contacting] GO SET ANSI_NULLS ON GO SE

XP提示“未授予用户在此计算机上的请求登录类型”的解决方案

XP提示"未授予用户在此计算机上的请求登录类型"的解决方案   具体如下: 1.打开"控制面板"中的"管理工具"; 2.在"管理工具"中选择"本地安全策略"; 3.选择"本地安全策略"--"本地策略"--"用户权利指派"; 4.在"用户权利指派"右边的选项框中,我们双击"拒绝从网络访问这台计算机"; 5.将&