Konstruktor
-
Ist die Zusicherung von meiner Setter Methode richtig ?
-
Dann nochmal ausgeschrieben. In dem Text steht "nicht größer" du testes anders herum auf kleiner. Wenn man es ganz genau nimmt, müsste dann der Vergleich auf kleiner gleich lauten.
Da bei Erfüllung der Bedingung aber der eine Wert der entsprechenden Variablen zugewiesen wird, macht das in diesem Fall keinen Unterschied im Ergebnis.
-
Implementieren Sie den operator<<. Die Ausgabe soll das Format
CRectangle[(<blX>, <blY>), (<trX>, <trY>), '<fillChar>']
(ohne abschließendem Zeilenumbruch) haben. Dabei steht „<blX>“ für „bottom left X(-
Koordinate)“ („<trY>“ entsprechend für „top right Y(-Koordinate)“). Für ein Rechteck mit
linker unterer Ecke bei (1,2) und oberer rechter Ecke bei (3,4) und Füllzeichen '#' ergäbe
sich also:
CRectangle[(1,2), (3,4), '#']Vor allem beim letzten Teil mit fillchar bin ich mir nicht sicher ?
ostream& operator<< (ostream& lhs, const CRectangle& rhs){ lhs << "CRectangle[(" << rhs.getBottomLeftCorner().getX() << "," << " " << rhs.getBottomLeftCorner().getY() << ")" << "," << "(" << rhs.getTopRightCorner().getX() << " , "<< rhs.getTopRightCorner().getY()<< " )"<< ","<< rhs.getFillChar()<< endl; return lhs; }
Fehler:
Description Resource Path Location Type
‘const class CRectangle’ has no member named ‘fillChar’; did you mean ‘m_fillChar’? CRectangle.cpp /CRectangle line 94 C/C++ Problem
‘const class CRectangle’ has no member named ‘topRight’; did you mean ‘m_topRight’? CRectangle.cpp /CRectangle line 94 C/C++ Problem
expected ‘)’ before ‘;’ token CRectangle.cpp /CRectangle line 94 C/C++ Problem
die Regel für Ziel „CRectangle.o“ scheiterte subdir.mk /CRectangle/Debug line 27 C/C++ Problem
make: *** [CRectangle.o] Fehler 1 CRectangle C/C++ Problem
expected primary-expression before ‘.’ token CRectangle.cpp /CRectangle line 94 C/C++ Problem
‘const class CRectangle’ has no member named ‘bottomLeft’; did you mean ‘m_bottomLeft’? CRectangle.cpp /CRectangle line 94 C/C++ ProblemIst meine Idee total falsch oder nicht so blöd wie ich denke ?
-
Die Fehlermeldung passt nicht zu deinem Code. Gleich die erste macht das deutlich:
‘const class CRectangle’ has no member named ‘fillChar’; did you mean ‘m_fillChar’? CRectangle.cpp /CRectangle line 94 C/C++ Problem
In deinem Code benutzt du aber fillChar gar nicht, sondern rufst
getFillChar
auf. Das passt also nicht zusammen.Außerdem steht in der Aufgabe explizit "ohne abschließendem Zeilenumbruch" drin. Du schreibst aber endl in den Stream.
Ach ja,
cout << "H" << "a" << "l" << "l" << "o";
kannst du einfacher schreiben:cout << "Hallo";
, das gilt auch für<< ")" << "," << "("
... dann fiele dir vielleicht auch auf, dass im Beispiel nicht "),(" steht, sondern "), (". Und das schließende "]" fehlt dir auch sowie die ' um das FillChar.Die Frage ist also eher, wobei bist du dir nicht sicher - und warum nicht?
-
Erzeugen Sie in main.cpp ein Rechteck rectangle1 mit der linken unteren Ecke (5,5)
und der rechten oberen Ecke (25,15) und dem Füllzeichen '#'. Geben Sie das Rechteck
unter Verwendung von operator<< auf der Konsole aus.Meine main sieht so aus :
/ GIT-Labor // main.h //////////////////////////////////////////////////////////////////////////////// // Header-Dateien #include <iostream> // Header f�r die Standard-IO-Objekte (z.B. cout, cin) #include <stdlib.h> // TODO: F�gen Sie hier weitere ben�tigte Header-Dateien der // Standard-Bibliothek ein z.B. // #include <string> using namespace std; // Erspart den scope vor Objekte der // C++-Standard-Bibliothek zu schreiben // z.B. statt "std::cout" kann man "cout" schreiben // Inkludieren Sie hier die Header-Files Ihrer Klassen, z.B. // #include "CFraction.h" #include "CPoint.h" #include "CRectangle.h" #include "CScreen.h" // Hauptprogramm // Dient als Testrahmen, von hier aus werden die Klassen aufgerufen int main (void) { // TODO: Tragen Sie hier Ihren Namen, die Matrikelnummer und die Rechnernummer ein cout << "Name:, Matrikelnummer: <Matrikelnummer>" << endl << endl; CRectangle rectangle1.getBottomLeftCorner().getX(5).getY(5); CRectangle rectangle1.getTopRightCorner().getX(25).getY(15); CRectangle rectangle.getFillChar(´fillChar´); return 0; }
Ich verstehe allerdings in diesem Fall die Aufgabenstellung nicht .
Ich übe eigentlich nur an der Aufgabe ,aber trotzdem .
Was soll ich den genau mit operator << ausgeben ?
Ich verstehe das ehrlich gesagt gar nicht .
Was wollen die von mir ?
-
Passt das ?
-
int main (void) { // TODO: Tragen Sie hier Ihren Namen, die Matrikelnummer und die Rechnernummer ein cout << "Name:, Matrikelnummer: <Matrikelnummer>" << endl << endl; CRectangle rectangle1; cout << "CRectangle1[(" << rectangle1.getBottomLeftCorner().getX(5) << "," << " " << rectangle1.getBottomLeftCorner().getY(5) << ")" << "," << "(" << rectangle1.getTopRightCorner().getX(25) << " , "<< rectangle1.getTopRightCorner().getY(15)<< " )"<< ","<< "fillChar"; return 0; }
-
mittlerweile nervst du echt!
-
Wieso tust du dir selbst nicht einfach einen gefallen und nimmst erstmal ein Buch zu Hand?
-
Gast12 schrieb:
Passt das ?
Schätze mal, nein.
Vermutlich soll deine main ungefähr so aussehen:
int main() { CPoint bottomLeft(5,5); CPoint topRight(25,15); CRectangle rect(bottomLeft, topRight); cout << rect; }
Edit: Ach ja, und das Ergebnis sollte dann ein, aus '#" gezeichnetes, Rechteck mit den angegebenen Koordinaten auf dem Bildschirm sein.
Ansonsten nimm dir den Rat von Cardiac zu Herzen, was du bisher fabrizierst sieht sehr planlos aus.
-
Bahn frei für obfuscated Lösungen.