Informatiker Board (http://www.informatikerboard.de/board/index.php)
- Themengebiete (http://www.informatikerboard.de/board/board.php?boardid=1)
-- Praktische Informatik (http://www.informatikerboard.de/board/board.php?boardid=6)
--- Programmierung 2 (http://www.informatikerboard.de/board/thread.php?threadid=3686)


Geschrieben von as_string am 07.09.2017 um 21:56:

 

Auch fillChar in Anführungszeichen ist Quatsch. Du willst das Füllzeichen doch ausgeben, nicht den String " fillChar". Wie kommst Du an das Füllzeichen ran?
Und die eckige Klammer zu fehlt auch immer noch, wie auch die Ausgabe der einfachen Hochkommata um das Füllzeichen rum.



Geschrieben von as_string am 07.09.2017 um 22:03:

 

Ich habe die Aufgabe nochmal gelesen. Mein Text über die Ausgabe des Rechtecke war falsch.
Die meinen mit "Ausgabe des Rechtecks" einfach Verwendung des operator <<, den wir ja dann implementiert haben.
Du sollst also eine main() schreiben, die Objekte der Klasse CRectangle anlegt und diese mit cout << ... ausgibt.
Und ein paar Vergleiche soll man auch noch machen.

Gruß
Marco



Geschrieben von Victor am 07.09.2017 um 22:34:

 

Meinst du es irgendwie so ?

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:


// GIT-Labor
// main.h

////////////////////////////////////////////////////////////////////////////////
// Header-Dateien
#include <iostream>		// Header f&#65533;r die Standard-IO-Objekte (z.B. cout, cin)
#include <stdlib.h>
// TODO: F&#65533;gen Sie hier weitere ben&#65533;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 rectangle2.getTopRightCorner().getX(25).getY(15);
	CRectangle rectangle3.getFillChar();
	
	cout <<  rectangle1 <<  " , " <<  rectangle2 << "," << rectangle3 
	

	return 0;
}


Ich verstehe nicht warum eclipse dauern meckert Mist?

Description Resource Path Location Type
make: *** [main.o] Fehler 1 CRectangle C/C++ Problem
expected initializer before ‘.’ token main.cpp /CRectangle line 30 C/C++ Problem
expected initializer before ‘.’ token main.cpp /CRectangle line 31 C/C++ Problem
stray ‘\302’ in program main.cpp /CRectangle line 32 C/C++ Problem
stray ‘\264’ in program main.cpp /CRectangle line 32 C/C++ Problem
die Regel für Ziel „main.o“ scheiterte subdir.mk /CRectangle/Debug line 27 C/C++ Problem
expected initializer before ‘.’ token main.cpp /CRectangle line 32 C/C++ Problem



Geschrieben von Victor am 07.09.2017 um 23:33:

 

Ist das auch völliger Quatsch ?


code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:

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;
}



Geschrieben von as_string am 07.09.2017 um 23:42:

 

Ich weiß nicht, ob das so irgendeine Zukunft hat.
Was soll das hier z. B.:
code:
1:
rectangle1.getBottomLeftCorner().getX(5)

Die Methode getX() ist deklariert, dass es keine Argumente annimmt:
code:
1:
2:
3:
4:
5:
  /**
   * Liefert den Wert der x-Koordinate.
   */
  int getX() const;

Die Klammer in der Deklaration ist leer!

Aber was willst Du überhaupt damit erreichen? Wenn Du ein neues Objekt machen willst, dann machst Du das mit new und rufst damit einen Konstruktor auf.

Ich denke, es wäre viel sinnvoller, wenn Du erst Grundlagen der Programmierung mit C++ lernst. Das hilft Dir doch sonst auch alles nicht weiter, oder?

Gruß
Marco



Geschrieben von Victor am 07.09.2017 um 23:46:

 

Ah ok .

Ich dachte durch die 5 würde eine 5 als X Koordinate ausgegeben werden großes Grinsen

Aber hier hatte ich es doch so gemacht :

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
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;
}



Ist das nicht richtig?



Geschrieben von Victor am 07.09.2017 um 23:47:

 

Der Konstruktor hat ja nur eine Koordinate , nicht x und y?



Geschrieben von as_string am 07.09.2017 um 23:48:

 

Nein, wenn Du ein neues Rechteck anlegen willst, musst Du den Konstruktor mit "new" aufrufen.
Dafür musst Du aber auch neue Eckpunkte machen, die auch mit new angelegt werden müssen.



Geschrieben von as_string am 07.09.2017 um 23:50:

 

welcher Konstruktor hat eine Koordinate?



Geschrieben von as_string am 07.09.2017 um 23:52:

 

Du willst ein Rechteck mit den beiden Eckpunkten anlegen. Da gibt es einen Konstruktor dafür, dem Du zwei CPoint-Objekte übergeben musst.
Du kannst dann so was schreiben:
code:
1:
CRectangle rectangle1 = new CRectangle(new CPoint(5, 5), new CPoint(25, 15));



Geschrieben von Victor am 07.09.2017 um 23:53:

 

Keiner .

Ich habe vielleicht eine Idee .

Zuerst objekt anlegen :

code:
1:
CRectangle rectangle1;


jetzt koordinaten mit rectangle1.setCorner(.....);?



Geschrieben von as_string am 07.09.2017 um 23:54:

 

Hab gerade nochmal geschaut: CPoint hat einen Konstruktor mit zwei Koordinaten.
CRectangle hat verschiedene Konstruktoren, einer davon mit zwei Eckpunkten, einer mit zwei Eckpunkten und Füllzeichen und dann noch einen nur mit Füllzeichen.

Also welcher Konstruktor soll denn eine Koordinate haben??? Das weißt schon, was ein Konstruktor ist, oder?



Geschrieben von as_string am 07.09.2017 um 23:55:

 

Nimm doch einfach den Konstruktor, wie ich es geschrieben hatte.



Geschrieben von Victor am 07.09.2017 um 23:56:

 

Zitat:
Original von as_string
Du willst ein Rechteck mit den beiden Eckpunkten anlegen. Da gibt es einen Konstruktor dafür, dem Du zwei CPoint-Objekte übergeben musst.
Du kannst dann so was schreiben:
code:
1:
CRectangle rectangle1 = new CRectangle(new CPoint(5, 5), new CPoint(25, 15));


Woher weiss ich das dieser neue Cpoint 2 Koordinaten hat ?

Das verstehe ich nicht ?

Wo wurde das erstellt? verwirrt



Geschrieben von as_string am 07.09.2017 um 23:57:

 

Sorry, hab kacke geschrieben...
Du brauchst kein new, einfach CRectangle rectangle1(...)


Forensoftware: Burning Board, entwickelt von WoltLab GmbH