トップページ > プログラム > 2019年02月19日 > Hz70ZqtS

書き込み順位&時間帯一覧

24 位/215 ID中時間01234567891011121314151617181920212223Total
書き込み数0000000000000001010000002



使用した名前一覧書き込んだスレッド一覧
デフォルトの名無しさん
【初心者歓迎】C/C++室 Ver.104【環境依存OK】

書き込みレス一覧

【初心者歓迎】C/C++室 Ver.104【環境依存OK】
517 :デフォルトの名無しさん[sage]:2019/02/19(火) 15:32:09.41 ID:Hz70ZqtS
C++です
インクルードガードがあっても関数の定義がヘッダに書かれていればヘッダが複数回読み込まれていた場合リンク時に多重インクルードでエラーが出る

ここまではわかるのですが、同じことをクラス関数で実験した結果エラーになりませんでした
具体的にはヘッダのクラス内に関数定義を書いて複数のファイルからインクルードしました
これはどういうことなのでしょうか?
【初心者歓迎】C/C++室 Ver.104【環境依存OK】
520 :デフォルトの名無しさん[sage]:2019/02/19(火) 17:23:21.85 ID:Hz70ZqtS
>>518
なるほど
クラス内に定義を書くとインライン関数になって普通の関数としては扱われないんですね

もう少し理解するために調べたのですが、インライン関数は内部リンケージのみを持つものとしてコンパイラに解釈されるらしいですね
だからコンパイラはファイル間での関数の重複を調べようとしない
そしてインクルードによって複数のファイルで同じものを読み込んだとしてもエラーにはならないと・・・
理解です
勉強になりました
ありがとうございました


※このページは、『2ちゃんねる』の書き込みを基に自動生成したものです。オリジナルはリンク先の2ちゃんねるの書き込みです。
※このサイトでオリジナルの書き込みについては対応できません。
※何か問題のある場合はメールをしてください。対応します。