class Foo {
public:
Foo(int a, int b);
Foo();
};
Foo foo;
int main(){
foo(1,3);
}
グローバルクラス Foo を使用している場合、これは正しいことですか?
いいえの場合、これを行う正しい方法を教えてください。
注: クラス オブジェクトがグローバルに必要です。
はい、任意のタイプ、クラス、またはそうでないグローバル変数を宣言できます。
いいえ、関数内でコンストラクターを再度「呼び出し」て初期化することはできません。ただし、コピー代入演算子を使用してそれを行うことができます。
Foo foo;
int main()
{
foo = Foo(1, 3);
}
または、オブジェクトの設定または再初期化に使用される「セッター」関数を使用できます。
ところで、クラスのデータによっては、3 のルールについて読みたいと思うかもしれません。
グローバルオブジェクトを持つことは確かに可能です。あなたの場合の正しい方法は次のとおりです。
Foo foo(1, 3);
int main()
{
// ...
}