6
class Foo {
public:
    Foo(int a, int b);
        Foo();
};


Foo foo;
int main(){
 foo(1,3);
}

グローバルクラス Foo を使用している場合、これは正しいことですか?

いいえの場合、これを行う正しい方法を教えてください。

注: クラス オブジェクトがグローバルに必要です。

4

2 に答える 2

7

はい、任意のタイプ、クラス、またはそうでないグローバル変数を宣言できます。

いいえ、関数内でコンストラクターを再度「呼び出し」て初期化することはできません。ただし、コピー代入演算子を使用してそれを行うことができます。

Foo foo;

int main()
{
    foo = Foo(1, 3);
}

または、オブジェクトの設定または再初期化に使用される「セッター」関数を使用できます。

ところで、クラスのデータによっては、3 のルールについて読みたいと思うかもしれません。

于 2013-09-16T08:21:54.657 に答える
5

グローバルオブジェクトを持つことは確かに可能です。あなたの場合の正しい方法は次のとおりです。

Foo foo(1, 3);

int main()
{
    // ...
}
于 2013-09-16T08:21:57.940 に答える