请问C++语言运用模板的方式实现复数运算的运算符和函数的重载实现?怎么实现复数模板?
不知道你这个问题是否已经解决, 如果还没有解决的话:当我们使用基本类型的时候如int和double直接可以灵活的进行转换,那么如果需要将Teacher类的对象转换成Student类的对象呢?
这时候我们就需要 类型转换构造函数
如果函数只需要一个参数,并且这个参数不是当前类类型的参数,那么这个函数就是类型转换构造函数
下面的例子是将一个秒数(其他类的对象)转换成Time类的对象。
class Time
{
public:
Time(long long = 0); // 类型转换构造函数
void ShowTime();
private:
int nHour;
int nMinute;
int nSecond;
};
Time::Time(long long sec)
{
sec = sec % (24 * 3600);
nHour = sec / 3600;
sec %= 3600;
nMinute = sec / 60;
nSecond = sec % 60;
}
下面的例子是将Time类的对象转换成秒数(其他类的对象)
class Time
{
public:
Time(int = 0, int = 0, int = 0);
operator int();//类型转换构造函数
void ShowTime();
private:
int nHour;
int nMinute;
int nSecond;
};
Time::operator int()
{
return nHour * 3600 + nMinute * 60 + nSecond;
}