为何静态成员函数无法对对象中非静态成员进行访问?
首先说明static修饰不同量的特性
| | | |
---|
| 修饰常量 | 修饰成员变量 | 修饰成员函数 |
static | 在函数执行后不会释放其内存空间 | 只能在类内部定义声明,外部初始化(:😃,且不加static。它是类的一部分,所有对象的静态成员共享一块静态存储空间 | 目的是作为类作用域的全局函数。 不能访问和存取类的非静态成员变量;没有this指针;不能声明为虚函数 |
因为对象在调用非静态成员函数时,系统会把对象的初始指针赋给成员函数的this指针,而静态成员函数不属于任何一个对象,也就没有this指针,所以无法访问非静态成员