私に迷惑をかけるようなものがあります。メソッドの静的なローカル変数は悪い習慣ですか?
スレッドされていないプログラムでは、ローカル静的変数(メソッド内)または静的クラスメンバーを持つ方が良いでしょうか?この例では
:
class C{
public:
C(){};
void foo();
};
void C::foo(){
static int bar = 0;
bar++;
printf("%d\n",bar);
}
はbar
が単独C::foo()
で使用される場合、それは悪い習慣と考えられますか?
あなたの答えの始まりは有望だと思われますが、あなたは精巧にできますか? –
@IIyan、彼のコードのセマンティクスは "何回fooが呼び出されたかを表示します!"です。彼の質問で見ることができるものから、これはクラスの状態とは何の関係もないので、静的なクラスメンバとして変数を置くのは間違っているでしょう。しかし 'foo'は、コピーコンストラクタだろうと' bar'は 'numberOfCopies'と呼ばれることになるならば、それは静的クラスのメンバのための良い候補だろう。それはそれがどのように使用されるかによって異なります。 –