一時構造体のデストラクタが呼ばれない

投稿ツリー


このトピックの投稿一覧へ

質問 一時構造体のデストラクタが呼ばれない

msg# 1
depth:
0
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 .2 .3 .4 | 投稿日時 2011/1/3 0:58
convol 
初めまして、convolと申します。

最近D言語をはじめたばかりなのですが、言語仕様でよく分からない所があったので投稿させていただきます。

表題のとおりなのですが、

struct Hoge {
    this(int n) {
        writeln("constructed");
    }
    ~this() {
        writeln("destructed");
    }

    void func() {
        writeln("func is called");
    }
}

void main() {
    Hoge(1).func();
}

のように一時構造体(この呼び方でいいんでしょうか)を作っても

constructed
func is called

としか表示されず、デストラクタが呼び出されていないようなのです。
クラスの場合は、当然ながらデストラクタはきちんと呼び出されるようで、一体どういった理屈なのでしょうか。
よろしくおねがいします。
投票数:28 平均点:4.29
返信する

この投稿に返信する

題名
ゲスト名
投稿本文

  条件検索へ


メインメニュー

ログイン

ユーザー名:


パスワード:





パスワード紛失  |新規登録

Menu