interfejs, szablon

interfejs, szablon
0

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ć?

Loganek
  • 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


_13th_Dragon
  • Rejestracja:ponad 19 lat
  • Ostatnio:3 miesiące
0

Co: - "... typ sparametryzowany musi mieć zdefiniowane jakieś operatory." - ma wspólnego z interface'ami ?


Wykonuję programy na zamówienie, pisać na Priv.
Asm/C/C++/Pascal/Delphi/Java/C#/PHP/JS oraz inne języki.
0

to powiedz mi, jak inaczej zapewnisz, żeby typ zapewniał, że będą zdefiniowane operatory, np. porównania?

_13th_Dragon
  • Rejestracja:ponad 19 lat
  • Ostatnio:3 miesiące
0

Jest dużo na to sposobów, np:

Kopiuj
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ć.


Wykonuję programy na zamówienie, pisać na Priv.
Asm/C/C++/Pascal/Delphi/Java/C#/PHP/JS oraz inne języki.
0

toż przecież zrobiłeś to samo, tylko zebrałeś w jedną metodę. Nic nadzwyczajnego.
Ale wracając, jak teraz zapewnić, żeby parametr pochodził właśne od Cmp?

_13th_Dragon
  • Rejestracja:ponad 19 lat
  • Ostatnio:3 miesiące
0

Nic nie trzeba robić, kompilator ci to zapewni.


Wykonuję programy na zamówienie, pisać na Priv.
Asm/C/C++/Pascal/Delphi/Java/C#/PHP/JS oraz inne języki.

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.