0
假设我们有一个类静态成员函数调用的语义虚函数时
class Abstract {
Abstract(void);
virtual ~Abstract(void) = 0;
virtual void VirtualFunction(void) = 0;
static void CallsVirtual(void) {
VirtualFunction();
}
};
class Concrete : public Abstract {
Concrete(void) {}
~Concrete(void){}
virtual void VirtualFunction(void) {/* Do virtual function-y stuff */}
};
int main(void) {
Concrete _concrete;
Abstract& _abstractReference = _concrete;
_abstractReference.callsvirtual();
}
哪个虚成员函数当一个基类的静态成员函数通过基类指针调用派生类中被调用?
这是我所期望的,因为静态成员函数没有这个指针 –
你可以在静态函数中访问非静态成员。但是你需要一个明确的对象来做到这一点。 –
所以如果CallsVirtual把一个基类指针作为参数,我想我可以规避它,例如CallsVirtual(Abstract&that){that.VirtualFunction; }但是这使得它首先使它静止=) –