Operatoren überschreiben
-
hallo!
hab ein problem und weiß nicht wie ich das lösen soll. Wir müssen zummindest einen Operator überladen laut angabe.
Also ich hätte mal folgendes:
modified.h
class Modified_Plus { public: Modified_Plus(); Modified_Plus(int postion_new); ~Modified_Plus(); int position_new_; int operator+(const Modified_Plus &o)const; private: };modified.cpp
Modified_Plus::Modified_Plus(int position_new) { } Modified_Plus::~Modified_Plus() { } int Modified_Plus::operator+(const Modified_Plus &o) const { int position = o.position_new_; return position; }hier sit schon mal intressant, dass der Compiler mekert wenn ich position_new_ als private mache und wenn ich:
int position = o.position_new_ + position_new_ schreibeweiters möchte ich das ganze jetzt auch anwenden am besten Hier:
if(startposition < endposition) { for(counter = startposition + 16 ; counter <= endposition; counter += 16) { if(!(board.getPiece(counter) == ' ')) { std::cout << "Error: Piece on the way.\n" ; return OCCUPIED; } }statt startposition + 16 möchte ich eben den Operator verwenden. aber wie ich bekomme ja mimmer ein Element vom typ Modified_Plus zurück und nicht int....
bitte helft mir!!!!!!!!!!!
-
nero08 schrieb:
int Modified_Plus::operator+(const Modified_Plus &o) const { int position = o.position_new_; return position; }hier sit schon mal intressant, dass der Compiler mekert wenn ich position_new_ als private mache und wenn ich:
int position = o.position_new_ + position_new_ schreibePoste mal deinen Code, normalerweise sollte das innerhalb einer Klasse keine Probleme geben.
nero08 schrieb:
weiters möchte ich das ganze jetzt auch anwenden am besten Hier:
if(startposition < endposition) { for(counter = startposition + 16 ; counter <= endposition; counter += 16) { if(!(board.getPiece(counter) == ' ')) { std::cout << "Error: Piece on the way.\n" ; return OCCUPIED; } }statt startposition + 16 möchte ich eben den Operator verwenden. aber wie ich bekomme ja mimmer ein Element vom typ Modified_Plus zurück und nicht int....
bitte helft mir!!!!!!!!!!!
Probiers doch mal, indem du zusätzlich zu deinem bestehenden noch einen freien operator+ implementierst:
int operator+(const Modified_Plus &o, const Modified_Plus &o2) { return o.operator+(o2); }
-
nero08 schrieb:
hier sit schon mal intressant, dass der Compiler mekert wenn ich position_new_ als private mache und wenn ich:
int position = o.position_new_ + position_new_ schreibeWo? Zeig uns den Code, der den Fehler verursacht, statt ihn grob zu beschreiben.
weiters möchte ich das ganze jetzt auch anwenden am besten Hier:
[cpp]statt startposition + 16 möchte ich eben den Operator verwenden. aber wie ich bekomme ja mimmer ein Element vom typ Modified_Plus zurück und nicht int....Wie meinen? Aus den Sätzen werde ich nicht ganz schlau. Wenn du dich ein wenig um ordentlichen Satzbau und verständliche Kommasetzung etc. bemühst, machst du es uns einfacher.
bitte helft mir!!!!!!!!!!!
Da fehlen noch mindestens zwanzig weitere Ausrufezeichen und "11111einseinself" dahinter. Damit dich jeder ernst nimmt.
Mal im ernst: Lies dir bitte den Link in meiner Signatur durch. Mit wichtig gekennzeichnete Threads liest man grundsätzlich alle durch bevor man seinen ersten Post verfasst. Sonst läuft man Gefahr, nicht ernst genommen zu werden oder Fragen zu posten die man wegen fehlender Infos nicht beantworten kann. Und mit solch einem schlechten ersten Eindruck hat man keine guten Karten, weil hier niemand seine Zeit verschwenden möchte...