由于静态成员函数不能修改非静态成员变量,为什么还要使用它呢?

时间:2013-11-15 05:34:45

标签: c++ multithreading

我知道静态类成员函数不需要实例化。但是,由于类成员函数的操作始终基于其自己的成员变量,为什么我们仍然使用静态成员函数?有人可以通过一些细节例子告诉我吗?提前谢谢。

P.S。我正在编写一个程序,在一个类成员函数中创建两个线程,这样我就需要在创建两个线程时传递线程回调函数地址。我希望线程回调函数也是同一个类的成员函数。根据一些参考文献,如果回调函数是类的成员,它应该是静态的。有一个问题:在静态回调中,我不能在同一个类中调用其他非静态函数,并且不能修改它的非静态成员变量。 (英语是我的第二语言,所以我不擅长。希望有些人能帮助我更简洁地描述一下: - )

1 个答案:

答案 0 :(得分:2)

我只想举个例子。如果要计算已声明的关于类的实例数,可能会有一个静态成员,如

int instance_count;

在类构造函数中,您可以添加instance_count,如:

instance_count++;

并在你的析构函数中:

instance_count--;

因此,您可以获得当前在程序中有多少个实例。