コード
int func(int func){
++func;
if(func
class test{
public:
int & function(){
static int var = 0;
return var;
}
};
int main(){
test ins1;
test ins2;
ins1.function() = 1;
printf("ins1:%d\n", ins1.function() );
printf("ins2:%d\n", ins2.function() );
}
関数の実体は1つですからね。
でもまあ、これを利用して、実体をどこにも記述しなくて良いクラス内static変数を擬似的に再現できますね。
私は昔から疑問に思ってたんですよ。
なんで実体をどこかに定義しなくちゃいけないんだと。
”どこか”って言ってるんだからどこかのスコープの中に書いて、スコープを限定できるのかと思ったらそうでもないし。
グローバル空間に定義することが決まってるんだから、明示的に書く必要はないでしょ。
ってことで、MoNoQLoREATORのスーパー実験タイムでした。
それでは良いプログラミングライフを!