C++で以下のプログラムがエラーにならない理由を教えていただきたいです。
main.cppとsub.cppの両方でconstants.hをincludeしています。
constants.hでは定数を定義しています。これを複数のcppファイルで呼び出すと、多重定義にならないのでしょうか。
ヘッダーファイルに関数を定義し、複数ファイルでincludeするとリンカーエラーが発生しますが、今回は起こらなかったので疑問に思いました。
C++
1//main.cpp 2#include <iostream> 3#include "constants.h" 4 5int main(){ 6 std::cout << "The value of pi is " << constans::pi; 7 return 0; 8}
C++
1//sub.cpp 2#include "constants.h" 3 4int subfunc(){ 5 //function body 6}
headerfile
1//constants.h 2namespace constants{ 3 constexpr double pi = 3.14; 4}
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/04/22 10:13
2021/04/22 13:46