関数が静的であることは非常に重要です。後で出力するには、別の静的/非静的クラス メンバーにアクセスして変更する必要があります。どうやってやるの?
フロー
- クラスが開始されます
- コンストラクターは、静的でなければならない内部関数を使用して変数を何かに設定します
- しばらくして、その変数を出力します
サンプルコード
#include <iostream>
class MyClass
{
public:
static int s;
static void set()
{
MyClass::s = 5;
}
int get()
{
return MyClass::s;
}
MyClass()
{
this->set();
}
};
void main()
{
auto a = new MyClass();
a->set(); // Error
std::cout << a->get() << std::endl; // Error
system("pause");
}
エラー
LNK2001: unresolved external symbol "public: static int MyClass::s" (?s@MyClass@@2HA)
LNK1120: 1 unresolved externals