Suppose that we have a class
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();
}
Which virtual member function is invoked when a base class static member function is called through a base class pointer to a derived class?
Neither. You’ll get a compiler error. You can’t call non-
staticmethods or access non-staticmembers from astaticmethod.