私は、プロジェクトの他の場所にあるTaxConstants.hpp名前空間TAXCONSTANTSで宣言されている定数int SIZEを使用しようとしています。私がコンパイルしようとすると、私はどこでもそのサイズが参照されている「 'SIZE' に未定義の参照を取得C++ネームスペース内でextern constを参照する
ファイルをTaxConstants.hpp
#ifndef TaxConstants_hpp
#define TaxConstants_hpp
namespace TAXCONSTANTS
{
extern const int SIZE = 4; // I have tried with and without extern
}
#endif //TAXCONSTANTS_HPP
main.cppに
#include <iostream>
#include "TaxConstants.hpp"
using namespace std;
using namespace TAXCONSTANTS;
int main()
{
extern const int SIZE;
// This is a struct defined in another file. It is a sample of my use for SIZE. I left out the #include above to simplify things.
taxPayer payers[SIZE];
//More code
return 0;
}
追加情報:この学校プロジェクトであり、私の教師は名前空間TAXCONSTANTSのファイルTaxConstants.hppに定数を宣言する必要がありました。
私は、合計で5つのファイルがあります。 nightsはSIZEエラーと同じ未定義リファレンスを持っています。
私はextern関数と名前空間について同様の説明を検索するのに時間を費やしましたが、最初の提案ではこれを行う代わりに別の解決策を提示することに反対しています。私は、残念ながらそれらを使用することはできません。人々が持っていた他のエラーは、私が持っていない "複数の装飾"を得ていた。
編集
詳細については、以下の説明を参照してください。私が行うために必要な何
は、名前空間TAXCONSTANTSでTaxConstants.hppファイル内
const int SIZE = 4;
を定義しました。
次に、 'extern const int SIZE;を削除します。 を私のメインファイルから取り出して、代わりにTAXCONSTANTS :: SIZEでSIZEを参照してください。
これは私が完全に忘れてしまった基本的な名前空間です。
可能な重複:[なぜ "extern const int n;"が期待どおりに機能しないのですか?](http://stackoverflow.com/questions/14894698/why-does-extern-const-int-n-not-work -as-expected) –
これは名前空間とは関係ありませんが、extern constの問題です。 –
検索用語[stackoverflow C++ extern const](https://www.google.com/search?q=stackoverflow+c%2B%2B+extern+const&ie=utf-8&oe=utf-8)を使って他の投稿を見ることができます) –