Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » Übungen

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
28.06.2003, 14:58 Uhr
VesaMan



Hi! Ich habe ein riesen Problem, ich habe mehrere Übungsaufgaben, bei denen ich einfach nciht weiterkomme. Vielleicht kann mir ja jemand helfen. Ich werde einfach mal die erste posten:

Es sei eine abstrakte Klasse GraphElem gegeben. Definieren Sie eine Klasse Rechteck, die öffentlich vom GrapElem
erbt. Eine andere solche Klasse könnte Dreieck sein (wir betrachten hier aber nur GraphElem und Rechteck).
GraphElem habe die Attribute
float x0,y0
und die Methoden
void zeichne()
und
void verschiebe(float x, float y)
In verschiebe() werde zeichne() aufgerufen. Rechteck habe als zusätzliches Attribut
float hoehe und float breite.
Die Klassenhierarchie soll auf Polymorphismus vorbereitet sein. So soll Rechteck die Methode verschiebe (...) von
GraphElem unverändert erben, jedoch zeichnen () überschreiben. Z.B. soll ein Container mit zeigen auf GraphElem
auch alle Nachfahren aufnehmen und diese konsistent zeichnen und verschieben können.
a)
Schreiben Sie die Klassendefinitionen der beiden Klassen, so daß ein Rechteck bei Anwendung der geerbten
Methode verschiebe() richtig gezeichnet wird.
Definieren Sie auch geeignete Konstruktoren, die über entsprechende Parameter optional die Attribute initialisieren
und Destruktoren.
Geben Sie die Implementierungen für die Konstruktoren an. Soweit für zeichne() und verschiebe() Implementierungen
notwendig sind, können Sie die Blöcke durch {...} andeuten. Dasselbe gilt für die Destruktoren, soweit deren
Implementierung nicht leer ist.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
28.06.2003, 18:15 Uhr
Bruder Leif
dances with systems
(Operator)


Moin!

Wie sieht Dein Ansatz aus?
--
Mit 40 Fieber sitzt man nicht mehr vor dem PC.
Man liegt im Bett.
Mit dem Notebook.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
28.06.2003, 19:57 Uhr
~VesaMan
Gast


Doppelpost, I guess.
Dieser Post wurde am 28.06.2003 um 20:35 Uhr von virtual editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
28.06.2003, 20:00 Uhr
~VesaMan
Gast


bisher hab ich:


C++:
class GraphElem
{
public:
   GraphElem(float x, float y);
   ~GraphElem {}
   virtual void zeichne();
   void verschiebe(float x, float y);
protected:
   float x0, y0;
}

GraphElem::GraphElem(float x, float y): x0(x), y0(y)
{}

void GraphElem::zeichne()
{...}

void GraphElem:: verschiebe(float x, float y)
{...}

class Rechteck : public GraphElem
{
public:
   Rechteck(float x, float y);
   ~Rechteck {}
   void zeichne(float x, float y);
protected:
   float x1, y1;
}

Rechteck::Rechteck(float x, float y) <- dann ???

void Rechteck::zeichne(float x, float y)


so, mal schauen, was ihr dazu sagt.

aber noch eine frage dazu oder allgemein:
1)wann sind destruktoren virtuell zu deklarieren? sobald eine virtuelle methode in der klasse ist?
2)wann benutzt man den konstruktor der basisklasse im konstr. der abgeleiteten klasse?

Dieser Post wurde am 28.06.2003 um 20:35 Uhr von virtual editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: