Hilfe Bitte :(

Schnelle objektorientierte, kompilierende Programmiersprache.
Antworten
ooatii
Beiträge: 3
Registriert: Mo Sep 09, 2013 6:39 pm

Hilfe Bitte :(

Beitrag von ooatii » Mo Sep 09, 2013 6:51 pm

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

Benutzeravatar
cloidnerux
Moderator
Beiträge: 3125
Registriert: Fr Sep 26, 2008 4:37 pm
Wohnort: Ram (Gibts wirklich)

Re: Hilfe Bitte :(

Beitrag von cloidnerux » Mo Sep 09, 2013 7:22 pm

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
Redundanz macht wiederholen unnötig.
quod erat expectandum

Nemo
Beiträge: 37
Registriert: Sa Mär 02, 2013 3:18 pm

Re: Hilfe Bitte :(

Beitrag von Nemo » Mo Sep 09, 2013 7:26 pm

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.

ooatii
Beiträge: 3
Registriert: Mo Sep 09, 2013 6:39 pm

Re: Hilfe Bitte :(

Beitrag von ooatii » Mo Sep 09, 2013 7:44 pm

Thank u sir cloidnerux

ooatii
Beiträge: 3
Registriert: Mo Sep 09, 2013 6:39 pm

Re: Hilfe Bitte :(

Beitrag von ooatii » Mo Sep 09, 2013 7:51 pm

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 =)

Benutzeravatar
Xin
nur zu Besuch hier
Beiträge: 8862
Registriert: Fr Jul 04, 2008 11:10 pm
Wohnort: /home/xin
Kontaktdaten:

Re: Hilfe Bitte :(

Beitrag von Xin » Mo Sep 09, 2013 8:10 pm

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. :-)
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.

Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.

Antworten