我有一个包含需要作为线程运行的函数的类。执行此操作的正确方法(按照我的理解)是将这些函数声明为静态。要使用此类中的方法,我需要一个该类的实例,因此我创建了一个静态变量,该变量在构造函数中初始化为 self 。对效率和程序逻辑有什么影响?
class Foo
{
private: Foo* this_instance;
Foo()
{
this_instance=this;
}
void FooBar()
{
...
}
static void* Bar()
{
if (this_instance==NULL) return 1; //throws are not catched are they?
this_instance->FooBar();
return 0;
}
}
不是实际的代码,而是让我的问题更清楚。
该应用程序确实有效,我用 helmind/memcheck 检查了它,错误与手头的问题无关。我问这个问题是因为所有解决方案似乎都是解决方法,包括这个。其他的就像爱医生提到的那样,其他的使用辅助静态方法。
我想知道我的方法是否会在某个时间点导致史诗般的失败,出于某种我不知道的原因,而对于其他更有经验的程序员来说是显而易见的。