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代码>