请参阅此函数 function 的输出。它表明静态函数可以被覆盖,因为派生类继承了函数:
void put(){printf("Static functions in base class");}
Run Code Online (Sandbox Code Playgroud)
如果我们不覆盖put()输出是基类中的静态函数,但我们将其覆盖为:
void put(){printf("Static functions are overridden in derived class");}
Run Code Online (Sandbox Code Playgroud)
所以输出是静态函数在派生类 public 中被覆盖:
#include<iostream>
class base{
public:
static void put(){printf("Static functions in base class");}
};
class derived : public base{
void put(){printf("Static functions are overridden in derived
class");}
};
int main(){
derived *bp = new derived;// Static Polymorphism //
bp->put();
return 0;
}
Run Code Online (Sandbox Code Playgroud)
由于这里put()不是虚函数。所以我们可以覆盖不是虚拟的函数吗?
这是静态多态的情况吗?