Desidero inoltrare una funzione membro statico di una classe in un altro file. Quello che voglio fare è simile al seguente:inoltrare la funzione statica C++
BigMassiveHeader.h:
class foo
{
static void init_foos();
}
Main.cpp:
class foo;
void foo::init_foos();
int main(char** argv, int argc)
{
foo::init_foos()
}
Questo fallisce con "l'errore C2027: uso di tipo non definito 'foo' "
C'è un modo per realizzare ciò che voglio fare facendo diventare init_foos una funzione gratuita, o includendo BigMassiveHeader.h? (BigMassiveHeader.h sta influenzando notevolmente il tempo di compilazione ed è incluso ovunque.)
se includere il codice in il .cpp o in BigHeader.h non dovrebbe avere un effetto. Dopo tutto, stai usando #include guards o #pragma una volta così BigHeader.h viene compilato solo una volta, giusto? – Kyte
@Kyte Includi le guardie limitano BigHeader.h a una volta per unità di traduzione in cui è inclusa. Se viene incluso in molti file sorgente, dovrà essere compilato molte volte. – KeithB
Quindi sarebbe possibile scomporre la definizione di 'class foo' in un altro file di intestazione? –