static静态函数
时间: 2023-11-12 12:06:23 浏览: 47
静态函数是在函数返回类型前加上关键字static定义的函数。静态函数只能在声明它的文件中可见,不能被其他文件使用。静态函数在默认情况下是extern的,但静态函数只在声明它的文件中可见,不会引起与其他文件中相同名字的函数冲突。静态函数不能访问类的私有成员,只能访问类的静态成员,不需要类的实例即可调用。静态函数可以继承和覆盖,但无法是虚函数。
相关问题
静态函数
静态函数是指在类中使用 static 关键字修饰的函数,它不受类的实例化控制,可以直接通过类名访问。与普通成员函数不同的是,静态函数无法访问非静态成员变量,因为非静态成员变量属于类的实例。
静态函数通常用于实现与类相关的功能,不依赖于类的实例。例如,可以使用静态函数计算某些数学公式,或者实现一些工具函数等。
在静态函数内部不能使用 this 指针,因为 this 指针指向类的实例化对象,而静态函数不属于任何实例化对象,因此没有 this 指针。另外,静态函数也不能声明为虚函数,因为虚函数是通过 vtable 虚函数表来实现的,而静态函数不属于任何实例化对象,没有 vtable。
静态函数的定义方式如下:
```
class MyClass {
public:
static void myStaticFunc() {
// ...
}
};
```
静态函数的调用方式如下:
```
MyClass::myStaticFunc();
```
不加static是静态函数吗
不加static的函数不是静态函数,它是一个非静态函数。
静态函数(static function)是指在函数名前面加上关键字static修饰的函数,它只能在定义它的源文件中使用,不能被其他源文件调用,也不与任何类或对象相关联。
而非静态函数(non-static function)没有使用static关键字修饰,可以在其他源文件中被调用,通常与类或对象相关联。