【发布时间】:2012-09-29 20:12:39
【问题描述】:
一些代码: 请参阅下面的 myClass 类。它有一个构造函数和一个公共递归函数 find。请看代码:
#include <iostream>
using namespace std;
class myClass{
public:
myClass() {
//do stuff
}
int find(int i) {
static int j = 10;
if (i > 15)
return i;
j = j + 1;
return i * find(j + 1);
}
};
int main()
{
myClass mC1 ,mC2;
cout<< " 1.... return value = "<< mC1.find(10);
cout<< " \n 2... return value = "<< mC2.find(10);
return 1;
}
输出:
1.... return value = 5241600
2.... return value = 170
上面的程序有一个类 myclass 有一个函数 find .. “find” 函数有一个 variabe 。这是静态的,因为我想要一个递归函数。问题是静态变量具有程序的生命并绑定到类。
但是我希望静态是 object 特定的而不是 class 范围。我希望这两个函数调用都返回相同的值。
简单地说,如何在类函数中创建一个静态变量,使其成为每个对象而不是整个类......
【问题讨论】: