看视频教程说不能在c++ 模板类外写 操作符重载函数,并且是模板类的友元函数
我试了试,可以,放出测试代码:
#include <iostream> using namespace std; template<typename T> class A { public: A(T a) { this->a = a; } template<typename T> //加上这句就可以了 friend A<T> operator+(A<T> &a1, A<T> &a2); T getA(){ return this->a; } private: T a; }; template<typename T> A<T> operator+(A<T> &a1, A<T> &a2){ T a = a1.a + a2.a; A<T> tmp(a); return tmp; } void main() { A<int> a1(2); A<int> a2(4); A<int> a3 = a1 + a2; cout << a3.getA() << endl; }
希望我不是火星了
字数补丁字数补丁字数补丁字数补丁字数补丁字数补丁字数补丁字数补丁字数补丁字数补丁字数补丁字数补丁字数补丁字数补丁字数补丁字数补丁字数补丁字数补丁字数补丁字数补丁字数补丁字数补丁字数补丁字数补丁