2018年计算机二级C++辅导笔记:转换发生的情形
五、转换发生的情形
上面的几个例子都是通过不能类型对象之间的相互赋值来调用转换函数,还有几种调用的可能:
参数传递
初始化
返回值
表达式语句
这些情况下,都有可能调用转换函数。
下面的程序不难理解,就不分析了。
#include iostream.h
class CustomDate
{
public:
int da, yr;
CustomDate() {}
CustomDate(int d,int y) { da=d; yr=y;}
void display()
{
cout< }
};
class Date
{
int mo, da, yr;
public:
Date(int m,int d,int y) { mo=m; da=d; yr=y; }
operator CustomDate();
};
Date::operator CustomDate()
{
static int dys[]={31,28,31,30,31,30,31,31,30,31,30,31};
CustomDate cd(0,yr);
for (int i=0;i cd.da+=da;
return cd;
}
class Tester
{
CustomDate cd;
public:
explicit Tester(CustomDate c) { cd=c; }
void display() { cd.display(); }
};
void dispdate(CustomDate cd)
{
cd.display();
}
CustomDate rtndate()
{
Date dt(9,11,1);
return dt;
}
int main()
{
Date dt(12,24,3);
CustomDate cd;
cd = dt;
cd.display();
dispdate(dt);
Tester ts(dt);
ts.display();
cd = rtndate();
cd.display();
return 0;
}
编辑推荐:
温馨提示:因考试政策、内容不断变化与调整,长理培训网站提供的以上信息仅供参考,如有异议,请考生以权威部门公布的内容为准! (责任编辑:长理培训)
点击加载更多评论>>