问:二级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;
}
考无忧小编推荐:
更多计算机等级考试真题及答案>>>点击查看
想知道更多关于计算机等级报考指南、考试时间和考试信息的最新资讯在这里>>>点击查看