面试题答案
一键面试1. static 成员函数的作用域范围
static
成员函数的作用域是在类的范围内。可以通过类名加作用域解析运算符::
来访问,例如ClassName::staticFunction()
;也可以通过类的对象来访问,如objectName.staticFunction()
。
2. static 成员函数的生命周期特点
static
成员函数的生命周期与程序的生命周期相同。在程序开始执行时被创建,直到程序结束才销毁。它不依赖于类的任何对象实例的创建与销毁。
3. static 成员函数与普通成员函数在访问类成员上的区别
- 访问非静态成员:
- 普通成员函数:可以访问类中的非静态成员变量和非静态成员函数,因为普通成员函数是与具体的对象实例相关联的,通过
this
指针来访问对象的成员。 static
成员函数:不能直接访问类中的非静态成员变量和非静态成员函数。因为static
成员函数不依赖于任何对象实例,没有隐含的this
指针,而非静态成员是依赖于对象实例的。
- 普通成员函数:可以访问类中的非静态成员变量和非静态成员函数,因为普通成员函数是与具体的对象实例相关联的,通过
- 访问静态成员:
- 普通成员函数:可以访问类中的静态成员变量和静态成员函数。
static
成员函数:可以访问类中的静态成员变量和静态成员函数。因为静态成员与类相关联,而不是与对象实例相关联,static
成员函数同样与类相关联,所以能访问静态成员。