返信する: 汎用質問板



オプション

参照

一時構造体のデストラクタが呼ばれない
投稿者: convol 投稿日時: 2011/1/3 0:58
初めまして、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

としか表示されず、デストラクタが呼び出されていないようなのです。
クラスの場合は、当然ながらデストラクタはきちんと呼び出されるようで、一体どういった理屈なのでしょうか。
よろしくおねがいします。
メインメニュー

ログイン

ユーザー名:


パスワード:





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

Menu