C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[3]: newについて


(過去ログ 51 を表示中)

[トピック内 7 記事 (1 - 7 表示)]  << 0 >>

■28335 / inTopicNo.1)  newについて
  
□投稿者/ みのむし (1回)-(2008/11/24(Mon) 20:15:40)

分類:[C/C++] 

はじめまして。
初心者ですが、宜しくお願いします。

下記の様に同じオブジェクトに対して何度もnewできるのでしょうか?
それともdeleteが必要でしょうか?

{
abc a;

// aを初期化
a = new abc();

 //なんらかの処理

a = new abc();
}

引用返信 編集キー/
■28336 / inTopicNo.2)  Re[1]: newについて
□投稿者/ アキラ (124回)-(2008/11/24(Mon) 20:32:14)
アキラ さんの Web サイト
deleteしてからnewしてください。
引用返信 編集キー/
■28337 / inTopicNo.3)  Re[1]: newについて
□投稿者/ dogatana (10回)-(2008/11/24(Mon) 20:53:14)
No28335 (みのむし さん) に返信
> 下記の様に同じオブジェクトに対して何度もnewできるのでしょうか?
> それともdeleteが必要でしょうか?

> abc a;
まず new が返すのはオブジェクトではなく、オブジェクトへのポインタなので
abc* a;
とする必要があります。

> a = new abc();
> a = new abc();

何度でも new を呼び出すことができますが、リソースが減っていきますので
アキラさんの書かれているとおり、deleteが必要なわけです。

文法レベルで正しいかどうかは、まずやってみるのが早いですね。

引用返信 編集キー/
■28346 / inTopicNo.4)  Re[2]: newについて
□投稿者/ 倉田 有大 (364回)-(2008/11/25(Tue) 02:27:01)
No28337 (dogatana さん) に返信
> ■No28335 (みのむし さん) に返信
>>下記の様に同じオブジェクトに対して何度もnewできるのでしょうか?
>>それともdeleteが必要でしょうか?
>
>> abc a;
> まず new が返すのはオブジェクトではなく、オブジェクトへのポインタなので
> abc* a;
> とする必要があります。
>
>> a = new abc();
>> a = new abc();
>
> 何度でも new を呼び出すことができますが、リソースが減っていきますので
> アキラさんの書かれているとおり、deleteが必要なわけです。
>
> 文法レベルで正しいかどうかは、まずやってみるのが早いですね。

C#ばっかやってるとdelete演算子の存在忘れてた...
スコープぬけたら解放されると勘違い。。;
引用返信 編集キー/
■28348 / inTopicNo.5)  Re[3]: newについて
□投稿者/ たくボン (73回)-(2008/11/25(Tue) 09:33:45)
No28346 (倉田 有大 さん) に返信
> ■No28337 (dogatana さん) に返信
>>■No28335 (みのむし さん) に返信
> C#ばっかやってるとdelete演算子の存在忘れてた...
> スコープぬけたら解放されると勘違い。。;

VBやC#はあまり意識しないでも作れますが、こういう部分はしっかり意識して作らないと後で悩む時ありますよね。
VBだと暗黙のインスタンス生成とかもあるみたいですが、初心者向けの機能っていらないと思うんですけどね。(一度プロジェクトにいたCOBOLあがりのプログラマが、わからずに使ってて1週間自分の中でハマってました。)
引用返信 編集キー/
■28349 / inTopicNo.6)  Re[2]: newについて
□投稿者/ .SHO (152回)-(2008/11/25(Tue) 09:55:25)
No28337 (dogatana さん) に返信

> まず new が返すのはオブジェクトではなく、オブジェクトへのポインタなので
> abc* a;
> とする必要があります。

abc って名前のクラスなんじゃないでしょうか?
引用返信 編集キー/
■28451 / inTopicNo.7)  Re[3]: newについて
□投稿者/ みのむし (3回)-(2008/11/26(Wed) 12:45:44)
No28349 (.SHO さん) に返信
> ■No28337 (dogatana さん) に返信
>
>>まず new が返すのはオブジェクトではなく、オブジェクトへのポインタなので
>> abc* a;
>>とする必要があります。
>
> abc って名前のクラスなんじゃないでしょうか?

みなさん、ご親切にありがとうございました。
大変勉強になりました。
解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -