坚持到底就是胜利

用心去做好这件事情

统计

留言簿(1)

阅读排行榜

评论排行榜

static member function

不能引用非静态成员变量,静态类成员函数不接收指针,可以作为回调(call back)函数。。
#include<iostream>
using namespace std;

class A{
private:
    
static int x;
    
int y;
public:
    A(
int _y):y(_y){}
    
static int getvalue(){return x;}
}
;
int A::x = 1;
//int A::getvalue();
int main(void)
{
    A a(
2);
    
int yy= A::getvalue();

    cout
<<yy<<endl;

    
return 0;


}
由于在C++中使用类成员函数作为回调函数的目的就是为了访问所有的成员变量和成员函数,如果作不到这一点将不具有实际意义。解决的办法也很简单,就是使用一个静态类指针作为类成员,通过在类创建时初始化该静态指针,如pThis=this,然后在回调函数中通过该静态指针就可以访问所有成员变量和成员函数了。这种处理办法适用于只有一个类实例的情况,因为多个类实例将共享静态类成员和静态成员函数,这就导致静态指针指向最后创建的类实例。为了避免这种情况,可以使用回调函数的一个参数来传递this指针,从而实现数据成员共享

posted on 2006-07-07 17:06 ailab 阅读(479) 评论(1)  编辑 收藏 引用

评论

# re: static member function 2006-11-02 19:38 charlie

朋友,不是说坚持到底吗?怎么停了?  回复  更多评论   


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理