您的位置:首页 > 其它

静态类成员函数无法访问普通的成员变量

2015-05-17 21:52 197 查看
class A
{
    int m_i;
public:
    static void f()
    {
        m_i=666;   //这是非法的,这个等价于this->m_i=666,而静态方法没有this
    }
    static void f(A&a)
    {
        a.m_i=666;   //这样就可以
    }
};


静态成员函数不属于任何一个类对象,没有this指针,而非静态成员必须随类对象的产生而产生,所以静态成员函数”看不见”非静态成员,自然也就不能访问了

但是如果静态成员函数通过引用一个对象,是可以直接访问成员的,也体现了它成员函数的特权。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐