Seite 1 von 1

Hilfe Bitte :(

Verfasst: Mo Sep 09, 2013 6:51 pm
von ooatii
Hello Leute..

Über Morgen habe ich eine Prüfung :roll: und ich habe eine muster Prüfung gefunden :o und deshalb Ich bitte jemandem um hilfe bitte :/

Die Frage lautet :

Gegeben sei folgende C++ Klasse Shape:

Code: Alles auswählen

//shape.h 

class	Shape
{
public:
Shape(int	id);
void	printDescription();
virtual	float	calculateArea()	=	0;
virtual	std::string	getName()	=	0;
virtual	void	scale(double	factor)	=	0;
private:
int	_id;
}

Code: Alles auswählen

//shape.cpp

#include	"shape.h"
Shape::Shape(int	id)
{
_id = id;
}
void	Shape::printDescription()
{
std::cout	<<	"Area of "	<<	getName()	 <<	<<	"	" <<	_id	<<	" : " <<	calculateArea()	<<	std::endl;
}
Jede Shape erwartet im Konstruktor eine ID, die in der Methode printDescription()
zur Ausgabe einer Shapebeschreibung verwendet wird. printDescription() verwendet
außerdem noch die Methoden getName() und calculateArea(). getName() liefert den
Namen des Shapetyps, calculateArea() berechnet und liefert die Fläche der Shape. Die
Methode scale(double factor) skaliert die Shape mit dem als Parameter übergebenen
Skalierungsfaktor.

Implementieren Sie eine Klasse Circle, die von der Klasse Shape erbt. Der Radius des
Kreises soll dem Konstruktor als Parameter übergeben werden. Die Methode
calculateArea() berechnet die Fläche des Kreises (r*r*3.141593) und liefert sie
zurück. getName() soll "Circle" returnieren, scale(double factor) multipliziert den
Radius mit dem übergebenen Faktor und überschreibt ihn mit dem Ergebnis. Beachten
Sie, dass der Konstruktor der Basisklasse eine ID erwartet!

Hier eine beispielhafte Verwendung von Circle, die das Verhalten skizzieren soll:

Code: Alles auswählen

//	Circle	mit	ID	=	2,	Radius	=	40	initialisieren
Shape	*rect	=	new	Circle(2,	40.0);
//	Skaliere	den	Radius	des	Kreises	mit	Faktor	0.5
//	Danach	ist	der	Radius	gleich	20
rect->scale(0.5);
//	Ausgabe	der	Beschreibung	des	Kreises
rect->printDescription();
Obiger Code soll bei Verwendung der von Ihnen implementierten Klasse Circle bei
Ausführung "Area of Circle 2: 1256.6372" auf stdout ausgeben.

a) Schreiben Sie die Klassendeklaration für die Klasse Circle
b) Schreiben Sie die Implementierung der Klasse Circle
c) Was bedeutet das "= 0" hinter getName() in Shape.h? Welche Auswirkung
hat das auf die Klasse Shape?


Kann jemand mir helfen bitte?
danke voraus =)
Edit by cloidnerux: code tags eingefügt

Re: Hilfe Bitte :(

Verfasst: Mo Sep 09, 2013 7:22 pm
von cloidnerux
Hallo und Willkommen im Forum
Kann jemand mir helfen bitte?
Ich würde damit anfangen die Aufgabe zu bearbeiten und dann konkret zu bestimmtem Problemen fragen zu stellen.
Es ist nicht so, dass ich dir nicht helfen will, aber einfach nur irgendetwas in den Raum werden und sagen "macht mal" ist zu einfach. Stelle bitte zu konkreten Themen und Problemen fragen und wir können dir Helfen.

Mit freundlichen Grüßen
Cloidnerux

Re: Hilfe Bitte :(

Verfasst: Mo Sep 09, 2013 7:26 pm
von Nemo
Hi,

ich hab leider keine Zeit dir ausführlicher zu antworten, aber ich denke, dass das hier selbst erklärend sein sollte: http://www.proggen.org/doku.php?id=cpp:oop:start
Insbesondere die Interfaces: http://www.proggen.org/doku.php?id=cpp:oop:interface

Ich hoffe ich konnte dir damit helfen.

Re: Hilfe Bitte :(

Verfasst: Mo Sep 09, 2013 7:44 pm
von ooatii
Thank u sir cloidnerux

Re: Hilfe Bitte :(

Verfasst: Mo Sep 09, 2013 7:51 pm
von ooatii
Nemo hat geschrieben:Hi,

ich hab leider keine Zeit dir ausführlicher zu antworten, aber ich denke, dass das hier selbst erklärend sein sollte: http://www.proggen.org/doku.php?id=cpp:oop:start
Insbesondere die Interfaces: http://www.proggen.org/doku.php?id=cpp:oop:interface

Ich hoffe ich konnte dir damit helfen.

Thank u so much Nimo was very helpful =)

Re: Hilfe Bitte :(

Verfasst: Mo Sep 09, 2013 8:10 pm
von Xin
ooatii hat geschrieben:Hello Leute..
...
a) Schreiben Sie die Klassendeklaration für die Klasse Circle
b) Schreiben Sie die Implementierung der Klasse Circle
c) Was bedeutet das "= 0" hinter getName() in Shape.h? Welche Auswirkung
hat das auf die Klasse Shape?


Kann jemand mir helfen bitte?
....
"Über Morgen habe ich eine Prüfung"
Zum einen kann ich Dir tatsächlich nur das Tutorial ans Herz legen, zum anderen interessiert mich bei der Frage 3, wie lange Du schon von der Prüfung weißt? Es ist Semester-Ende, der Sommer war schön, aber zum Studium gehört ja auch ein wenig Lernen. ^^
=0 sind Pure Virtual Functions. Dafür wäre es schon von Vorteil, wenn man Objektorientierte Programmierung soweit verstanden hat, womit wir nochmals beim Tutorial wären. Die Zeit reicht zum Lesen, ob sie zum Begreifen reicht, kannst Du uns ja dann sagen. :-)