teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

2

修正

2020/09/09 15:31

投稿

Zuishin
Zuishin

スコア28675

answer CHANGED
@@ -9,7 +9,7 @@
9
9
 
10
10
  > 2.YOLOv3Result型のstd::vectorを返り値に持つ関数なのかどうかわからない。関数だとしたらどうゆう構造、使い方でどのような意味の返り値を返してるのでしょか?
11
11
 
12
- ここに yolov3_post_process の宣言は二つあります。これは同名で引数や戻り値の異なる関数が(少なくとも)二つあることを示します。このように同名の関数を複数作ることをオーバーロードと呼びます。名前は同じですが、異なった関数で、引数の数や種類で呼び分けます。
12
+ ここに yolov3_post_process の宣言は二つあります。これは同名で引数や戻り値の異なる関数が(少なくとも)二つあることを示します。このように、一つのクラスに同名のメソッドを複数作ることをオーバーロードと呼びます。これらは名前は同じですが、異なった関数で、引数の数や種類で呼び分けます。
13
13
 
14
14
  片方は YOLOv3Result が戻り値で、もう片方は std::vector<YOLOv3Result> が戻り値です。
15
15
  std::vector<T> は配列の上等なものと思ってください。つまり片方は YOLOv3Result を一つしか返さないが、もう片方は複数返すということです。

1

追記

2020/09/09 15:31

投稿

Zuishin
Zuishin

スコア28675

answer CHANGED
@@ -3,4 +3,13 @@
3
3
 
4
4
  この関数をどのように呼び出すかだけが示されており、実際の定義(関数の中身)はまた別にあります。
5
5
 
6
- .hpp はヘッダファイルで、通常このような宣言ばかりが主に書かれます。.cpp という拡張子のファイルを探してみてください。もしかしたらソースは提供されていなくて、コンパイル済みかもしれません。
6
+ .hpp はヘッダファイルで、通常このような宣言ばかりが主に書かれます。.cpp という拡張子のファイルを探してみてください。もしかしたらソースは提供されていなくて、コンパイル済みかもしれません。
7
+
8
+ ### 追記
9
+
10
+ > 2.YOLOv3Result型のstd::vectorを返り値に持つ関数なのかどうかわからない。関数だとしたらどうゆう構造、使い方でどのような意味の返り値を返してるのでしょか?
11
+
12
+ ここに yolov3_post_process の宣言は二つあります。これは同名で引数や戻り値の異なる関数が(少なくとも)二つあることを示します。このように同名の関数を複数作ることをオーバーロードと呼びます。名前は同じですが、異なった関数で、引数の数や種類で呼び分けます。
13
+
14
+ 片方は YOLOv3Result が戻り値で、もう片方は std::vector<YOLOv3Result> が戻り値です。
15
+ std::vector<T> は配列の上等なものと思ってください。つまり片方は YOLOv3Result を一つしか返さないが、もう片方は複数返すということです。