Ecco un esempio di lavoro minima:Perché una funzione membro statico _declared_ static, ma _defined_ altrimenti in C++?
Ah:
class A{
static int a_member_function();
};
A.cpp
#include "A.h"
int A::a_member_function(){return 5;}
int main(){ return 1;}
Questo codice viene compilato ed eseguito, ma, mi sembra che:
static int A::a_member_function(){return 5;}
potrebbe essere usato altrettanto facilmente per definire la funzione membro statico di c lass A. In effetti, sembra che potrebbe essere piuttosto utile avere questo requisito, dal momento che ricorderebbe al lettore del file .cpp che a_member_function è statico.
Tuttavia, questo chiaramente non funziona:
error: cannot declare member function ‘static int A::a_member_function()’ to have static linkage [-fpermissive]
Così perché non funziona? Qual è il ragionamento dietro questa decisione?
Ah. Ha un qualche senso. Grazie! –