0

クラスがある場合:

class classA {
public:
    int z = 5;
};

RAII を書いていることは理解してclassA Aobjectいますが、グローバル ポインタを宣言したい場合はどうすればよいですか?

classA *Aobject;
int main()
{
    Aobject = new classA; //not RAII

    cout << Aobject->z << endl;

    return 1;
}
4

1 に答える 1

4

オブジェクトを宣言したいが、すぐに初期化したくないということだと思います。おそらく、適切に構築するために必要なすべてのパラメーターがまだないためです。あれは正しいですか?スマートポインタを使用してください。

#include <memory>
#include <iostream>

std::unique_ptr<classA> Aobject;
int main()
{
    Aobject.reset(new classA);

    cout << Aobject->z << endl;

    return 1;
}
于 2012-12-08T17:18:19.760 に答える