今天在论坛上看了些关于 C++中static函数 继承的问题,顺便弄个小程序试了试。。
#include <iostream>
using namespace std;
class base {
public:
static int statFun(){cout << "in class base"<<endl;}
//......
};
class derived1:public base{
//......
};
class derived2:public base{
public:
static int statFun(){cout << "in class derived2"<<endl;}
//......
};
int main(int argc, char *argv[])
{
base::statFun(); //父类自身的
derived1::statFun(); //父类的
derived2::base::statFun(); //父类的
derived2::statFun(); //自身的
return 0;
}
输出:
p, li { white-space: pre-wrap; }
Starting /home/magic/test_static/test_static...
in class base
in class base
in class base
in class derived2
----
论坛有说 C++中static 函数是无法 实现重写,但这样看是可以的,只是这样无法实现多态,这个与java中不同。