私は、名前空間や静的変数の根本的な誤解と思います。 main.cppに名前空間で変数を扱う方法
namespace test{
static int testNum=5;
void setNum(int value);
}
:私はこれを実行すると
#include <test.h>
int test::setNum(int value){
testNum=value;
}
int main(){
test::setNum(9);
cout<<test::testNum;
}
私は値5を得る。しかし、私はこのテストコード(手作業で入力されたが、タイプミスを許して)
TEST.Hを試してみました私が期待したように9ではない。私はtestNum変数の2つのインスタンスを持っているかのように見えますが、それは静的とは正反対のようです。私は、これらの機能がJava Equilibantと何らかの形で同じであると仮定して間違いを犯したと推測しています...
私の宣言から静的を削除すると、testNumが複数回宣言されているというエラーが表示されます。 testNum、誰かがそれがなぜ同じ理由であるか説明することができますか?
は、名前空間スコープで
'#include'の仕組みを知っていますか?指定されたファイルの内容をコピー&ペーストします。そして 'setNum'定義は本当に' main.cpp'にもありますか? – Xeo
私はそれを示していませんでしたが、私は標準のifNDEF DEFを私の.hに持っています。また、私はプログラム全体に* once *を含めるだけなので、それでも問題はないでしょうか? – dsollen
'using namespace test'を使用していますか? –