OK, Listen up, chaps.
Mam następujący problem. Deklaruję sobie w jakiejś klasie-matce funkcję wirtualną (byle jaką, byle sobie poćwiczyć polimorfizm) no i odpowiednie funkcje w klasach-potomkach. I teraz pojawia się kłopot, albowiem kompilator (dev cpp) z jakiegoś powodu uparł się, że funkcja jest czysto wirtualna. A to z kolei powoduje, że wyskakuje masa bugów bo mam zadeklarowanych pełno bajerów które np. zwracają obiekt danej klasy czy biorą go za argument, a to oczywiście przy klasie abstrakcyjnej jest niemożliwe.
Proszę Was zatem o pomoc - czy ktoś byłby na tyle miły, aby luknąć na ten kod i powiedzieć dlaczego ta funkcja jest uznawana za czysto wirtualną?
// plik: vspace_class.h
virtual void write ();
/*********************/
//plik: vspace_class.cpp
#include <iostream>
#include "vspace_class.h"
/* funkcje, operatory i inne takie */
void vspace::write ()
{ //linijka 63
cout<<"wtf?";
}
/********************/
Kompilator mówi, że w vspace_class.cpp w linicje 63\cpp\me\vspace\vspace_class.cpp prototype for void vspace::write()' does not match any in class
vspace'
No a potem pojawiają się błędy sugerujące że to jest funkcja czysto wirtualna, np.:
67 C:\cpp\me\vspace\vspace_class.cpp cannot declare parameter b' to be of type
vspace'
67 C:\cpp\me\vspace\vspace_class.cpp because the following virtual functions are abstract:
16 C:\cpp\me\vspace\vspace_class.h virtual void vspace::write(vspace&)
Nie wiem czemu tak jest :P .
AFAIK to funkcje czysto wirtualne deklaruje sie tak:
virtual void write () = 0;
Z góry dizęki za pomoc.