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