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

回答編集履歴

3

「際」が重なってしまっているのを修正

2020/09/10 02:32

投稿

hidezzz
hidezzz

スコア1248

answer CHANGED
@@ -3,4 +3,4 @@
3
3
  (ヘッダ側にinlineで置くことも一応は出来ます。実際class宣言内で定義している関数はinline扱いになっています)
4
4
 
5
5
  提示された書き方だと、ヘッダファイル(*.hpp)をインクルードしたソース(*.cpp)の全てに同名の関数定義が含まれてしまうことになります。
6
- リンクのに全ソースファイルを突き合わせる際に、同じ関数が複数存在することになるのでエラーとなります。
6
+ リンクのに全ソースファイルを突き合わせる際に、同じ関数が複数存在することになるのでエラーとなります。

2

誤字修正。

2020/09/10 02:32

投稿

hidezzz
hidezzz

スコア1248

answer CHANGED
@@ -3,4 +3,4 @@
3
3
  (ヘッダ側にinlineで置くことも一応は出来ます。実際class宣言内で定義している関数はinline扱いになっています)
4
4
 
5
5
  提示された書き方だと、ヘッダファイル(*.hpp)をインクルードしたソース(*.cpp)の全てに同名の関数定義が含まれてしまうことになります。
6
- リンクの全ソースファイルを突き合わせる際に、同じ関数が複数存在することになるのでエラーとなります。
6
+ リンクの際に全ソースファイルを突き合わせる際に、同じ関数が複数存在することになるのでエラーとなります。

1

言い回し修正。

2020/09/10 02:29

投稿

hidezzz
hidezzz

スコア1248

answer CHANGED
@@ -1,5 +1,6 @@
1
1
  質問文に書かれている通り、
2
2
  普通は、ヘッダファイルにはclass定義などの宣言のみを書き、関数定義はソースファイル側に書きます。
3
+ (ヘッダ側にinlineで置くことも一応は出来ます。実際class宣言内で定義している関数はinline扱いになっています)
3
4
 
4
- 提示された書き方だと、ヘッダファイル(*.hpp)をインクルードしたソース(*.cpp)の全てに関数定義が含まれてしまうことになります。
5
+ 提示された書き方だと、ヘッダファイル(*.hpp)をインクルードしたソース(*.cpp)の全てに同名の関数定義が含まれてしまうことになります。
5
6
  リンクので全ソースファイルを突き合わせる際に、同じ関数が複数存在することになるのでエラーとなります。