版权声明
请尊重原创作品。转载请保持文章完整性,并以超链接形式注明原始作者“tingsking18”和主站点地址,方便其他朋友提问和指正。
#include <iostream> using namespace std; template <typename P1,typename P2> class AddT { public: AddT(P1 p1,P2 p2) :m_p1(p1),m_p2(p2){} operator P1() { return m_p1+(P1)m_p2; } operator P2() { return (P2)m_p1+m_p2; } private: const P1 &m_p1; const P2 &m_p2; }; template <typename P1> class AddT<P1,P1> { public: AddT(P1 p1,P1 p2) :m_p1(p1),m_p2(p2){} operator P1() { return m_p1+ (P1)m_p2; } private: const P1 &m_p1,&m_p2; }; template <typename P1,typename P2> AddT<P1,P2> add(const P1& p1,const P2& p2) { return AddT<P1,P2>(p1,p2); } int main() { int a =1; int b = 2; float i = (float)add(a,b); cout<< i <<endl; }
模板类与运算符重载
本文介绍了一个通用加法模板类AddT的实现方法,该类能够处理不同类型的参数并进行加法运算。通过使用模板特化和运算符重载技术,实现了不同类型间的加法操作,展示了C++中模板和运算符重载的强大功能。
8860

被折叠的 条评论
为什么被折叠?



