// rrr.cpp : 定义控制台应用程序的入口点。 // #include "stdafx.h" #include
#include
using namespace std; template
class complex { private: T first; T second; public: complex() { if(typeid(T) == typeid(double) || typeid(T) == typeid(float)) { first = 0; second = 0; } else throw string("illegal Type!"); } ~complex(){} complex(T f, T s) { if(typeid(T) == typeid(double) || typeid(T) == typeid(float)) { first = f; second = s; cout<
<
& operator=(const complex
&cpx) { if(typeid(T) == typeid(double) || typeid(T) == typeid(float)) { first = cpx.first; second = cpx.second; return *this; } else throw string("illegal Type!"); } complex(const complex
&cpx) { first = cpx.first; second = cpx.second; } complex
operator+(complex
cpx) { complex
temp; temp.first = first + cpx.first; temp.second = second + cpx.second; return temp; } complex
operator-(complex
cpx) { complex
temp; temp.first = first - cpx.first; temp.second = second - cpx.second; return temp; } complex
operator*(complex
cpx) { complex
temp; temp.first = first*cpx.first - second*cpx.second; temp.second = second*cpx.first + first*cpx.second; return temp; } complex
operator/(complex
cpx) { complex
temp; temp.first = (first*cpx.first + second*cpx.second)/(cpx.first*cpx.first + cpx.second*cpx.second); temp.second = (second*cpx.first - first*cpx.second)/(cpx.first*cpx.first + cpx.second*cpx.second); return temp; } void printC() { cout<
<
<
<
c(1,2),p(3,4); complex
x = c/p; x.printC(); }catch(string &s) { cout<
<
定义一个特化的模板类并实现四则运算的重载的例子
最新推荐文章于 2023-12-14 13:19:50 发布