c++模板類 各種函數在類外實現


  轉載自:

      https://blog.csdn.net/wwzhang0307/article/details/53008806

#include <iostream> using namespace std; /*模板類 各種函數在類外的實現*/ template <typename T> class AA { public: AA(T a, T b); void printAA(); AA operator+(AA &tmp); //友元函數重載<< friend ostream& operator<< <T>(ostream& out, AA<T>& tmp); private: T a; T b; }; template <typename T> AA<T>::AA(T a, T b) { this->a = a; this->b = b; } template <typename T> void AA<T>::printAA() { cout << "a:" << a << " b:" << b << endl; } //類外實現函數時,加T的地方有 函數返回值,類名:: ,形參變量 template <typename T> AA<T> AA<T>::operator+(AA<T> &tmp) { AA tt(this->a + tmp.a, this->b + tmp.b); return tt; } //友元函數重載<< template <typename T> ostream& operator<< (ostream& out, AA<T>& tmp) { out << "a=" << tmp.a << " b=" << tmp.b << endl; return out; } int main() { AA<int> tmp(5, 6); AA<int> tmp1(5, 7); AA<int> tmp2 = tmp1 + tmp; tmp2.printAA(); cout << tmp2 << endl; return 0; }
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM