c++ 静态成员函数能调用非静态成员吗

如题所述

静态成员的定义是针对类的一个对象而言的,即该类的每个对象都有一套自己的静态成员变量和函数。如果想要静态成员函数调用非静态成员,那就必须有一个这个类的instance(实例)才行,例如:

class foo{
public:
foo()
:m_i(0)
{}
static void add1(foo& instance); //实例传入函数
static void add1();//定义一个自身的静态实例

private:
static foo m_instance;
int m_i;
};

void foo::add1(foo& instance)
{
instance.m_i = instance.m_i+1;
}

void foo::add1()
{
m_instance.m_i = m_instance.m_i+1;
}

谢谢,望采纳!

温馨提示:答案为网友推荐,仅供参考
第1个回答  2016-08-16
不能。。。。。。。。。。。。。。。。。
相似回答