MST

星途 面试题库

面试题:C++ 中 static 函数的作用域与生命周期基础问题

在 C++ 中,简述类的 static 成员函数的作用域范围以及生命周期特点。同时说明 static 成员函数与普通成员函数在访问类成员上有何区别?
44.5万 热度难度
编程语言C++

知识考点

AI 面试

面试题答案

一键面试

1. static 成员函数的作用域范围

  • static成员函数的作用域是在类的范围内。可以通过类名加作用域解析运算符::来访问,例如ClassName::staticFunction();也可以通过类的对象来访问,如objectName.staticFunction()

2. static 成员函数的生命周期特点

  • static成员函数的生命周期与程序的生命周期相同。在程序开始执行时被创建,直到程序结束才销毁。它不依赖于类的任何对象实例的创建与销毁。

3. static 成员函数与普通成员函数在访问类成员上的区别

  • 访问非静态成员
    • 普通成员函数:可以访问类中的非静态成员变量和非静态成员函数,因为普通成员函数是与具体的对象实例相关联的,通过this指针来访问对象的成员。
    • static成员函数:不能直接访问类中的非静态成员变量和非静态成员函数。因为static成员函数不依赖于任何对象实例,没有隐含的this指针,而非静态成员是依赖于对象实例的。
  • 访问静态成员
    • 普通成员函数:可以访问类中的静态成员变量和静态成员函数。
    • static成员函数:可以访问类中的静态成员变量和静态成员函数。因为静态成员与类相关联,而不是与对象实例相关联,static成员函数同样与类相关联,所以能访问静态成员。