質問編集履歴

5

Animalクラスの定義の中の publicの下に書いてある operator<<の上で、 typename Typeを記入しました。

2020/11/02 00:45

投稿

alizona
alizona

スコア126

test CHANGED
File without changes
test CHANGED
@@ -38,7 +38,9 @@
38
38
 
39
39
  public:
40
40
 
41
+ template<typename Type> //この関数の上に typename Typeを記入しました。
42
+
41
- void operator<<((HashEntry<Type>* tmp){ cout << tmp ->getValue(); }
43
+ void operator<<(HashEntry<Type>* tmp){ cout << tmp ->getValue(); }
42
44
 
43
45
 
44
46
 

4

説明の追加

2020/11/02 00:45

投稿

alizona
alizona

スコア126

test CHANGED
File without changes
test CHANGED
@@ -1,4 +1,16 @@
1
1
  <<(output)のオペレーターのオーバーライドをしたいです。
2
+
3
+
4
+
5
+ 下記で、cout << *(currentEntry -> getValue());このように表示をしたいのですが、
6
+
7
+ << を overrideする必要があるとのことでした。
8
+
9
+ どのように overrideをしていいのかが分からず、試行錯誤しているのですが、
10
+
11
+ アドバイスをいただけないでしょうか?
12
+
13
+
2
14
 
3
15
 
4
16
 

3

エラーを追加しました。

2020/11/02 00:30

投稿

alizona
alizona

スコア126

test CHANGED
File without changes
test CHANGED
@@ -31,6 +31,10 @@
31
31
 
32
32
 
33
33
  ```
34
+
35
+ 上記で追加したところ出るエラーは下記のエラーです。
36
+
37
+ ![イメージ説明](56b53c640f557de548899846a7336737.png)
34
38
 
35
39
 
36
40
 

2

class Animalのなかで template <typename Type>をしたのですが、そうするとAninal classの cppファイルでエラーが出ます。

2020/11/02 00:27

投稿

alizona
alizona

スコア126

test CHANGED
File without changes
test CHANGED
@@ -11,6 +11,8 @@
11
11
 
12
12
 
13
13
  ```c++
14
+
15
+ template <typename Type> //これを追加しました。
14
16
 
15
17
  class Animal{
16
18
 

1

変数名を変えました。

2020/11/02 00:22

投稿

alizona
alizona

スコア126

test CHANGED
File without changes
test CHANGED
@@ -24,7 +24,7 @@
24
24
 
25
25
  public:
26
26
 
27
- void operator<<((HashEntry<Type>* sample){ cout << sample ->getValue(); }
27
+ void operator<<((HashEntry<Type>* tmp){ cout << tmp ->getValue(); }
28
28
 
29
29
 
30
30