关于static成员函数的常见问题

177 阅读1分钟

1. static成员函数能否为虚函数?

不能。首先从思想想来说,虚函数是为了实现多态的,但是static函数是对类来说的。不是根据对象的。其次从实现上来说,在static成员函数里是没有this指针的,因为根本就不存在对象的概念。而访问虚表是需要this指针的,所以没有办法访问到虚表。

2. static成员函数能否为const

不能。当成员函数声明为const的时候,会对this指针产生影响。会把this指针变为常量指针,即使得this指针变为const指针,this指针不能用来更改数据。但是static成员函数没有this指针所以做不到这一点。volatile同理

2. static成员函数能否为inline

可以。内联函数只是函数调用的方式不同,inline做的是直接展开代码,少了函数调用的过程。