<<(output)のオペレーターのオーバーライドをしたいです。
下記で、cout << *(currentEntry -> getValue());このように表示をしたいのですが、
<< を overrideする必要があるとのことでした。
どのように overrideをしていいのかが分からず、試行錯誤しているのですが、
アドバイスをいただけないでしょうか?
c++
1template <typename Type> //これを追加しました。 2class Animal{ 3 private: 4 int id; 5 int name 6 7 public: 8 template<typename Type> //この関数の上に typename Typeを記入しました。 9 void operator<<(HashEntry<Type>* tmp){ cout << tmp ->getValue(); } 10
C++
1 2using namespace std; 3 4template<typename Type> 5class HashEntry{ 6 private: 7 int key; 8 Type value; 9 HashEntry* next; 10
c++
1//この下でオーバーライドした<<オペレーターを使用したいです。 2void printTable(){ 3 HashEntry<Type>* currentEntry = table[i]; 4 while(currentEntry -> getNext() != NULL){ 5 cout <<(currentEntry); 6 //cout << *(currentEntry -> getValue()); これは使うべきではないと思っています。
掲示コードでは Animal クラステンプレート と HashEntryクラステンプレート の関係性が読み取れませんが、両者はどのような関係にあるのでしょうか?
回答3件
あなたの回答
tips
プレビュー