今天在论坛上看了些关于 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中不同。
本文探讨了C++中静态成员函数的特性,特别是它们如何在派生类中表现。通过一个示例程序展示了静态函数虽然不能被重写,但在不同类层次中的调用方式。
696

被折叠的 条评论
为什么被折叠?



