przeciazenie operatora+

przeciazenie operatora+
0

czy da sie zrobic konwersie dla przeciazonego operatora+?

przykladowo mamy kase kart, bieg i obiekty
kart a1, a2, w1;
bieg b1, b2, w2;

czy dla danych wyrazen:
w1 = a1 + a2
w1 = a1 + b1;
w2 = b1 + b2;
w2 = b1 + a1;

trzeba 4 razy przeciezy operator??

_13th_Dragon
  • Rejestracja:prawie 20 lat
  • Ostatnio:17 dni
1

Nie koniecznie, wystarczą konwersje:
kart::operator JakisTamTypNpDouble()const {...}
bieg::operator JakisTamTypNpDouble()const {...}
oraz konstruktory:
kart::kart(const JakisTamTypNpDouble &J) {...}
bieg::bieg(const JakisTamTypNpDouble &J) {...}
ten JakisTamTypNpDouble może to być jedna z tych klas np kart (prościej się dodają)


Wykonuję programy na zamówienie, pisać na Priv.
Asm/C/C++/Pascal/Delphi/Java/C#/PHP/JS oraz inne języki.
MarekR22
Moderator C/C++
  • Rejestracja:ponad 17 lat
  • Ostatnio:4 minuty
0

To zależy od wielu rzeczy.
Jeśli masz odpowiednie strukturę klas to wystarczy odpowiednie wykorzystanie polimorfizmu.
Inna możliwość to tak jak napisał _13th_Dragon konwersje automatyczne.
Szablony też mogą być dobrym rozwiązaniem.
Każde z tych rozwiązań zależy od tego jakie masz klasy i jak je zaprojektowałeś.


Jeśli chcesz pomocy, NIE pisz na priva, ale zadaj dobre pytanie na forum.

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.