C++ 带有运算符重载的模板类

C++ 带有运算符重载的模板类,c++,class,templates,operator-overloading,C++,Class,Templates,Operator Overloading,这是我关于模板类的问题 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; } aclass A{1,2}; aclass B{3.0,4.0}; C类; int ma

这是我关于模板类的问题

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;
}
aclass A{1,2};
aclass B{3.0,4.0};
C类;
int main()
{
C=A+B;//如何以简单的方式重载此运算符?
B=A;//还有这个?
返回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_;
};
模板
结构aclass
{
aclass(aclass const&)=默认值;
aclass&运算符=(const aclass&)=默认值;
模板
aclass(aclass const&rhs):a_u(rhs.a_u),b_u(rhs.b_u){
模板
aclass和运算符=(aclass常量和rhs)
{
a=rhs.a;
b_u=rhs.b_u;
归还*这个;
}
T a_uu,b_uu;
};

如何将operator=设置为友元函数?@charliepu123:您可以将所有模板实例设置为友元:
模板友元结构aclass