Sono un neofita della programmazione in C++, ho un dubbio durante l'esecuzione di alcuni programmi C++, ovvero come ottenere il binding dinamico per la funzione membro statico. il binding dinamico delle normali funzioni membro può essere ottenuto dichiarando le funzioni membro come virtuali ma non possiamo dichiarare le funzioni membro statiche come virtuali, quindi per favore aiutatemi. e vedere l'esempio di seguito:ereditarietà delle funzioni membro statico
#include <iostream>
#include <windows.h>
using namespace std;
class ClassA
{
protected :
int width, height;
public:
void set(int x, int y)
{
width = x, height = y;
}
static void print()
{
cout << "base class static function" << endl;
}
virtual int area()
{
return 0;
}
};
class ClassB : public ClassA
{
public:
static void print()
{
cout << "derived class static function" << endl;
}
int area()
{
return (width * height);
}
};
int main()
{
ClassA *ptr = NULL;
ClassB obj;
ptr = &obj ;
ptr->set(10, 20);
cout << ptr->area() << endl;
ptr->print();
return 0;
}
Nel codice sopra ho assegnato oggetto di classe derivata a un puntatore e chiamando la funzione di stampa di membro static(), ma è il richiamo della funzione classe base in modo come posso raggiungere dinamica legare per la funzione membro statico.
bello! mi piace. –