sto cercando di capire il motivo per cui il seguente è un errore:funzione di membro con il collegamento statico
class Foobar {
public:
static void do_something();
};
static void Foobar::do_something() {} // Error!
int main() {
Foobar::do_something();
}
Questa errori con "l'errore: non può dichiarare la funzione di membro 'static void Foobar :: fai_qualcosa()' per avere collegamento statico "in g ++ e" errore: 'statico' può essere specificato solo all'interno della definizione della classe "in clang ++.
Capisco che il modo per risolvere questo problema è rimuovere "statico" nella definizione di do_qualcosa in linea 6. Tuttavia, non capisco perché questo è un problema. È una ragione banale, come "la grammatica del C++ detta così", o è qualcosa di più complicato?
Possibile duplicato di [Errore funzioni membro statico; Come scrivere correttamente la firma?] (Https://stackoverflow.com/questions/8130066/static-member-functions-error-how-to-properly-write-the-signature) –