メインの .cpp ファイルの 3 つのファイルがあります。
#include <stdio.h>
#include "myClass.h"
int main()
{
myClass mvar;
tryVar = 23; // why does this not work?
printf("%d ", mvar.readTryVar()); // This writes out 0, why??
return 0;
}
myClass.cpp ファイル
#include "myClass.h"
myClass::myClass(void)
{
}
myClass::~myClass(void)
{
}
void myClass::setTryVar()
{
tryVar = 23334;
}
int myClass::readTryVar()
{
return tryVar;
}
および myClass.h ファイル
#pragma once
static int tryVar;
class myClass
{
public:
myClass(void);
~myClass(void);
void setTryVar();
int readTryVar();
};
これらは非常に単純なファイルですが、静的変数がメイン関数に設定されていない理由が理解できず、myClass 関数を介して設定する必要があります。
「翻訳単位」がどのように作成されるかはよくわからないと思います.「include」ディレクティブは、実際のコンパイルの前にヘッダーファイルの内容を.cppファイルにコピーするだけです..では、なぜですか.静的変数が表示されていますか?