📄 pr11009.cpp
字号:
////////////////////////////////////////
// File Name: pr11009.cpp
////////////////////////////////////////
#include <iostream>
////////////////////////////////////////
// CustomDate class definition.
////////////////////////////////////////
class CustomDate
{
public:
int da, yr;
CustomDate() {}
CustomDate(int d, int y) { da = d; yr = y;}
void display() {std::cout << std::endl << yr << '-' << da;}
};
////////////////////////////////////////
// Date class declaration.
////////////////////////////////////////
class Date
{
int mo, da, yr;
public:
Date(int m, int d, int y) { mo = m; da = d; yr = y; }
operator CustomDate(); // conversion function
};
////////////////////////////////////////
// Date class definition.
////////////////////////////////////////
// Member conversion function (CustomDate <- Date).
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 < mo-1; i++)
cd.da += dys[i];
cd.da += da;
return cd;
}
////////////////////////////////////////
// A class that expects a CustomDate
// date as an initializer.
////////////////////////////////////////
class Tester {
CustomDate cd;
public:
explicit Tester(CustomDate c) { cd = c; }
void display() { cd.display(); }
};
////////////////////////////////////////
// A function that expects a CustomDate
// date.
////////////////////////////////////////
void dispdate(CustomDate cd)
{
cd.display();
}
////////////////////////////////////////
// A function that returns a CustomDate
// date.
////////////////////////////////////////
CustomDate rtndate()
{
Date dt(10,11,88);
return dt; // This will be converted to CustomDate.
}
////////////////////////////////////////
// The main() function.
////////////////////////////////////////
int main()
{
Date dt(11,17,89);
CustomDate cd;
// Convert Date to CustomDate via assignment.
cd = dt;
cd.display();
// Convert Date to CustomDate via function argument.
dispdate(dt);
// Convert Date to CustomDate via initializer.
Tester ts(dt);
ts.display();
// Convert Date to CustomDate via return value.
cd = rtndate();
cd.display();
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -