Podczas kompilacji w GCC otrzymuję błąd : czystego specyfikatora w definicji funkcji, ale nie wtedy, gdy kompiluję ten sam kod przy użyciu VS2005.czysty specyfikator w definicji funkcji
class Dummy {
//error: pure-specifier on function-definition, VS2005 compiles
virtual void Process() = 0 {};
};
Ale gdy określenie tej czystej funkcji wirtualnej nie jest inline, to działa:
class Dummy
{
virtual void Process() = 0;
};
void Dummy::Process()
{} //compiles on both GCC and VS2005
Co środki błędach? Dlaczego nie mogę tego zrobić inline? Czy można omijać problem z kompilacją, jak pokazano w drugim przykładzie kodu?
Tak, powinien, jeśli jej potrzebujesz. Posiadanie takiego jest całkowicie legalne. –
Ale z ciałem byłaby to tylko funkcja wirtualna. Co powinna zrobić czysta wirtualna funkcja z ciałem? –
@Martin Prawdopodobnie nic - jeśli zadeklarujesz czysty wirtualny destruktor (na przykład), musisz podać mu ciało. –