原问题有点复杂,简化一下。
我先定义了一种类:
class Object
{
double x,y;
double width,height;
};
接下来有一个函数,它的参数是这个类的指针:
void work(Object* _obj);
我想实现这样的功能:第一次调用的时候,它会针对这个物体设置一个定时器int time;;接下来每一次调用,这个计时器都会自减(即time--;)。当time到达0的时候,再对这个_obj进行操作(即if (time==0) _obj->something=...)。
注意:int time不能定义在Object内部。
正常情况下第一眼就能看出来用static,但这里问题来了:因为static的使用和函数参数无关,所以不管物体指针是怎么样,它都会调用这一个time。这样的话,如果有多个物体都使用这个函数的话,会出现调用混乱的情况。
求问这种问题该如何解决,才能实现我想要的功能/kk
(补充:我目前的做法是在Object内部建立一个map<string,double>,来实现“动态建立变量”,但查找要耗更多的时间,所以觉得不好。)