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

如题所述

第1个回答  2020-04-05
静态成员的定义是针对类的一个对象而言的,即该类的每个对象都有一套自己的静态成员变量和函数。如果想要静态成员函数调用非静态成员,那就必须有一个这个类的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;
}谢谢,望采纳!
相似回答