Problem mit Klassenbeziehungen

So ihr experten … Ich will hier als Übung einen Adventskranz programmieren, der natürlich 4 Kerzen hat, wobei Kerze eine eigene Klasse ist … Mein Problem ist nun, die 4 Kerzen in den Adventskranz einzubinden und dann „abbrennen zu lassen“ …

hier mal Code:

// kerze.h
#include 
#define \_USE\_MATH\_DEFINES
#include 
using namespace std;

class Kerze
{
 int laenge;
 int durchmesser;
 float gewicht;
 int minuten;
 int dauer;
 float grundflaeche;

public:

 Kerze(int l, int d);
 ~Kerze();

 void brenndauer();
 void anzuenden(int min);
 int minuten\_ausgeben();
 int stunden\_ausgeben();
};

// kerze.cpp

#include "kerze.h"

Kerze::Kerze(int k\_laenge, int k\_durchmesser)
{
 laenge = k\_laenge;
 durchmesser = k\_durchmesser;
 grundflaeche = pow(((double)k\_durchmesser/2),2)\*M\_PI;
 gewicht = (k\_laenge\*grundflaeche)\*0.9;
}

Kerze::~Kerze()
{
}

void Kerze::brenndauer()
{
 minuten = (gewicht/5)\*60;
}

void Kerze::anzuenden(int m)
{
 if (m

So sieht jetzt meine Kerze aus ... Wie bau ich jetzt eine Klasse "Adventskranz" mit 4 Kerzen, wo ich angeben kann, welche Kerze ich wie lange abbrennen lassen will?

Würd mich sehr freuen wenn mir da einer einen Denkanstoß geben könnte ... Ich selber habe schon an ein Array aus Kerzen gedacht. Geht das? Wenn ja, wie?

Hallo

So ihr experten … Ich will hier als Übung einen Adventskranz
programmieren, der natürlich 4 Kerzen hat, wobei Kerze eine
eigene Klasse ist … Mein Problem ist nun, die 4 Kerzen in
den Adventskranz einzubinden und dann „abbrennen zu lassen“

hier mal Code:

So sieht jetzt meine Kerze aus … Wie bau ich jetzt eine
Klasse „Adventskranz“ mit 4 Kerzen, wo ich angeben kann,
welche Kerze ich wie lange abbrennen lassen will?

Würd mich sehr freuen wenn mir da einer einen Denkanstoß geben
könnte … Ich selber habe schon an ein Array aus Kerzen
gedacht. Geht das? Wenn ja, wie?

Das geht so, wie Du’s am liebsten haben möchtest. Vom
„Klassendesign“ her würde man hier eine sog. Top-Down-
Näherung verwenden. Du schreibst also, von main()
ausgehend, Deinen Code zur Benutzung der Kerze
so, wie Du Dir das im idealen Falle wünschen würdest -
(als ob die Klasse schon im Idealzustand existieren „würde“)
und *hinterher* implementierst Du erst diese Funktionalität
in die Klasse hinein.

Also genau andersrum wie Du es angefangen hast.

Was möchstest Du denn gerne mit den Kerzen machen?
Schreib doch mal „verbal“ ein Ablaufschema. Das wird
dann zu main() „umgebaut“ und hinterher wird die Klasse
„Kerze“ gebastelt.

Grüße

CMБ

Was möchstest Du denn gerne mit den Kerzen machen?
Schreib doch mal „verbal“ ein Ablaufschema. Das wird
dann zu main() „umgebaut“ und hinterher wird die Klasse
„Kerze“ gebastelt.

Die Benutzung der Kerze ist nicht mein Problem, mein Problem ist, die Klasse „Kerze“ in eine Klasse „Adventskalender“ so einzubinden, dass ich 4 Kerzen auf dem Adventskalender stehen habe und dann mittels einer Methode der Klasse „Adventskalender“ einzelne Kerzen eine beliebige Zeit lang „brennen“ zu lassen.

Hi,

[…]

Die Benutzung der Kerze ist nicht mein Problem, mein Problem
ist, die Klasse „Kerze“ in eine Klasse „Adventskalender“ so
einzubinden, dass ich 4 Kerzen auf dem Adventskalender stehen
habe und dann mittels einer Methode der Klasse
„Adventskalender“ einzelne Kerzen eine beliebige Zeit lang
„brennen“ zu lassen.

vielleicht versteh ich dein Problem ganz falsch, aber was spricht dagegen, das so hier zu machen.

class Adventskranz
{
 Kerze[4] kerzen;
 [...]
}

und die Kerzen dann über kerze[nummer] anzusprechen (0 basiert!).

Gruß Yelmalio

P.S.: Ist es kurz vor dem 4.Advent nicht ein wenig zu spät, sich um einen Adventskranz zu kümmern?^^

1 Like

class Adventskranz
{
Kerze[4] kerzen;
[…]
}

und die Kerzen dann über kerze[nummer] anzusprechen (0
basiert!).

Ja so ähnlich hab ich mir das auch vorgestellt … Kann ich dann Methoden der Kerzen in einer Methode der Klasse „Adventskranz“ über

Adventskranz::methode(int a, int b)
{
 kerze[0].methode;
}

aufrufen?

Gruß Yelmalio

P.S.: Ist es kurz vor dem 4.Advent nicht ein wenig zu spät,
sich um einen Adventskranz zu kümmern?^^

Klar is es prinzipiell dazu zu spät, aber es dient ja nur Übungszwecken, von daher isses ja egal … Mir is nur nix besseres eingefallen :wink:

Hallo,

Ja so ähnlich hab ich mir das auch vorgestellt … Kann ich
dann Methoden der Kerzen in einer Methode der Klasse
„Adventskranz“ über

Adventskranz::methode(int a, int b)
{
kerze[0].methode;
}

aufrufen?

Probiers doch einfach aus - geht es?

Gruesse,
Moritz

Nein es funktioniert irgendwie nicht … Hab jetzt die weniger elegante Möglichkeit mit einzelnen Kerzen gewählt … Funktioniert jetzt wenigstens einigermaßen … Ich werd auf jeden Fall noch n bisschen Rumbasteln.
Danke allen für die Hilfe

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo,

Probiers doch einfach aus - geht es?

Kann nicht gehen, da kein default-Konstruktor
für ‚Kerze‘.

Grüße

CMБ