Cześć ;)
Załóżmy, że tworzę sobie klasę sparametryzowaną i mam takie wymaganie, typ sparametryzowany musi mieć zdefiniowane jakieś operatory.
Widzę to tak:
Tworzę sobie interfejs i w nim robię pure virtual te parametry. Teraz jakoś trzeba zasygnalizować, że typ parametryzowanu musi dziedziczyć po tym intefejsie ( musi go implementować).
Jak to zrobić?
0

- Rejestracja:ponad 18 lat
- Ostatnio:około 8 lat
- Postów:268
0
To, czego potrzebujesz, to koncepty. Tutaj np. wykład o tym ze spotkań wrocławskiej grupy C++: http://cppwroclaw.pl/dokuwiki/spotkania/004/info

- Rejestracja:ponad 19 lat
- Ostatnio:3 miesiące
0
Jest dużo na to sposobów, np:
struct Cmp
{
protected:
virtual int cmp(const Cmp &c)const=0;
friend bool operator==(const Cmp &a,const Cmp &b) { return (cmp(a,b)==0); }
friend bool operator<=(const Cmp &a,const Cmp &b) { return (cmp(a,b)<=0); }
friend bool operator>=(const Cmp &a,const Cmp &b) { return (cmp(a,b)>=0); }
friend bool operator!=(const Cmp &a,const Cmp &b) { return (cmp(a,b)!=0); }
friend bool operator<(const Cmp &a,const Cmp &b) { return (cmp(a,b)<0); }
friend bool operator>(const Cmp &a,const Cmp &b) { return (cmp(a,b)>0); }
};
Wszystko co pochodzi od Cmp ma już wszystkie operatory porównania, jedynie trzeba nadpisać metodę cmp
.
Jeżeli metoda nie nadpisana - to klasa jest abstrakcyjna więc nie może istnieć.
Zarejestruj się i dołącz do największej społeczności programistów w Polsce.
Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.