- ベストアンサー
オブジェクト作成方法の違い
C++の勉強中でいろんなサイトを見ていたのですが、 オブジェクトとの作成方法にnewを指定しているときと 指定していないときの違いが分かりませんでした。 あと、newで作成された場合は動的にメモリを確保して deleteする必要がありますが、newされていない方は deleteする必要はないんでしょうか? パターン1 TestClass test("Hello"); パターン2 TestClass *test = new TestClass("Hello");
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
>newされていない方はdeleteする必要はないんでしょうか? オブジェクトを「int型の変数」に変えて考えてみよう。 TestClass test("Hello"); ↓ int i; TestClass *test = new TestClass("Hello"); ↓ int *p = new int; 型が「int」であろうが「TestClass」であろうが、書き方は同じ。 もし void sub(void) { int *p = new int; delete p; } と書いてあったら「pをdeleteする必要がある」のは明白。 同様に void sub(void) { int i; } と書いてあったら「iをdeleteする必要があるかどうか?」などと悩まない筈。
お礼
chieさん、返答ありがとうございます。 ということは、newしていないものは 普通の変数の定義と一緒なんですね。 分かりやすい回答ありがとうございました。