C++ の関数にて広域変数を初期値に2011年03月01日 04時57分09秒

C++ で、広域変数を用いて、関数のデフォルトの初期値を実行状況によって変えたくなった。周りに尋ねると C++ で、規定されていると言われた。

sun% cat static.cpp
#include <ostream>

int global = 2;

void p( int value = global )
{
    std::cout << value << std::endl;
}

int main()
{
    p();
    p( 1 );
    global = 3;
    p();
}

三度目の呼び出しの前に初期値として設定されている global 変数の値を変える。


sun% CC static.cpp
sun% ./a.out 
2
1
3

最初の値は 2、最後の値は 3 になっている。

コメント

コメントをどうぞ

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

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

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

トラックバック

このエントリのトラックバックURL: http://uyota.asablo.jp/blog/2011/03/01/5713648/tb

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