- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:C++のnewの使い道)
C++のnew演算子の使い道とは?
このQ&Aのポイント
- C++のnew演算子の使い方について説明します。
- new演算子は、動的にメモリを確保するために使用されます。
- 主な使用例は、不明なサイズのメモリを実行時に確保する場合や、メモリの開放を任意のタイミングで行いたい場合です。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
> Cのmallocのようなものと考えていいのでしょうか? YES. mallocは領域確保だけであるのに対し、newだと初期化(コンストラクト)も行います。 # ついでに deleteは後始末(デストラクト)ののち領域解放。 > ある参考書を読んでいると「引数つきコンストラクタを呼び出す場合はnewでインスタンス生成する」と書いてありました。 参考書のマチガイでなければあなたのミス・リード
その他の回答 (1)
- επιστημη(@episteme)
- ベストアンサー率46% (546/1184)
回答No.2
> 発行が古い(2004年)ので、昔のC++はこうだったけど今は違う、ということでしょうか? > 何にせよ、別に引数付きコンストラクタでもnewなしでインスタンス生成して構わないということですね。 今も昔も class foo { public: foo(int n); }; foo aFoo(1); // OK foo* pFoo = new foo(2); // also OK
質問者
お礼
そうですか。 参考書がおかしいのでしょうか。 二つとも答えていただいてありがとうございます。
お礼
回答ありがとうございます。 以下は参考書の一文です。 >コンストラクタをオーバーロードした場合、注意すべきは「インスタンスの作成方法」です。引数つきのコンストラクタを利用してインスタンスを生成する場合は、「new」を使います。 その理由などは書かれていませんでした。 一度deleteしたインスタンスに再割り当てするという話でもありませんでした。 発行が古い(2004年)ので、昔のC++はこうだったけど今は違う、ということでしょうか? 何にせよ、別に引数付きコンストラクタでもnewなしでインスタンス生成して構わないということですね。