1. 程式人生 > >關於模板類中輸入輸出運算子的過載

關於模板類中輸入輸出運算子的過載

    當輸入輸出運算子在標頭檔案中寫時,如果沒有#include <iostream>和using namespace std;程式將會有100多個bug;當輸入輸出運算子過載為模板類的友元函式時,如果只是在類體中寫為ostream& operator<<(ostream& out,MyClass<T>& c),編譯時將會出現連線錯誤,解決方法有多種,我只掌握了兩種:

1.不使用運算子過載的方式,直接定義兩個Input,Output函式來達到目的

2.改變友元與模板類的對應關係為多對多

如以下程式碼:

template <class T>

class Myclass

{

private:

........

public:

.........

template <class U>

friend ostream& operator<<(ostream& out,Myclass<U> m);

}

.........

template <class U>

ostream& operator<<(ostream& out,Myclass<U> m)

{

.....

}

以上兩種方法可以解決這種問題