C++ で一時変数が const 参照された時の破棄されるタイミングを実験する2020年03月13日 07時21分34秒

一時変数を const 参照するのは C++ の規約が許可している。前回は、一時変数を const 参照を用いて cout で出力する例をあげた。

折角なので、今回は実際に一時変数が破棄されるタイミングを観察する。

#include <iostream>

class Int
{
    int value_;

public:
    Int( int value ): value_( value ){}

    ~Int()
    {
        std::cout << "~Int(" << value_ << ")" << std::endl;
    }
};

int main()
{
    const Int& i = Int( 3 );
    std::cout << "END" << std::endl;
}
実行すると、main 関数が END を出力した後に ~Int が呼ばれているのが分かる。
% c++ -std=c++98 const_refernece.cpp
% ./a.out 
END
~Int(3)

前回

コメント

コメントをどうぞ

※メールアドレスとURLの入力は必須ではありません。 入力されたメールアドレスは記事に反映されず、ブログの管理者のみが参照できます。

※なお、送られたコメントはブログの管理者が確認するまで公開されません。

名前:
メールアドレス:
URL:
コメント:

トラックバック

このエントリのトラックバックURL: http://uyota.asablo.jp/blog/2020/03/13/9223721/tb

※なお、送られたトラックバックはブログの管理者が確認するまで公開されません。