java中静态的函数不可以调用非静态的函数吗? c 静态成员函数能调用非静态成员吗
java中静态的函数不可以调用非静态的函数吗?
静态方法和实例方法的不同是,静态方法是在类加载的时候就已经编译了,而实例方法必须有实例的清空下才能使用。
A类有一个静态方法a,实例方法b 那么你调用A的时候可以直接A.a但是调用b的时候必须先实例
new A().b这样才行
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
}谢谢,望采纳!