以下是关于模板类
的问题aclass<int> A{1,2};
aclass<float> B{3.0,4.0};
aclass<int> C;
int main()
{
C=A+B; //How to overload this operator in a simple way?
B=A; //And also this?
return 0;
}
如何重载运算符来处理不同类型的模板类? (抱歉我的英语不好)
答案 0 :(得分:0)
您可以在类模板中包含成员函数模板:
template <typename T>
struct aclass
{
aclass(aclass const &) = default;
aclass & operator=(const aclass &) = default;
template <typename U>
aclass(aclass<U> const & rhs) : a_(rhs.a_), b_(rhs.b_) {}
template <typename U>
aclass & operator=(aclass<U> const & rhs)
{
a_ = rhs.a_;
b_ = rhs.b_;
return *this;
}
T a_, b_;
};