[C] Unterschiedliche größe einer Class

Simon Heck

Grünschnabel
Moin Leute,

ich habe da mal ein Problem, mit dem ich schneinbar nicht alleine fertig werde.
Ich möchte mit einer Class ein "Rezept" erstellen, das eine unterschiedliche Größe haben kann.
Mein Problem besteht darin das Rezept individuell anzupassen d.h das eine Rezept hat 3 Zutaten, das andere aber nur 2.

Ich dachte erst daran das ganze mit einer Array zu probieren nur stehe ich gerade ein wenig auf dem Schlauch.
 
Hi und Willkommen bei tutorials.de :)

Du meinst sicher C++, oder?
C allein hat nämlich keine Klassen.

Zum Problem: Man könnte dir sicher besser helfen, wenn du deinen bisherigen Code zeigst.
Bitte gleich in [code=cpp]...[/code] reinschreiben, das macht alles um einiges lesbarer.

Generell: Speicherst du einzelnen Zutaten (bzw. die Namen davon) einfach als char-Array?
Arrays, die dynamisch ihre Größe ändern lassen, bekommt man mit den Funktionen malloc/free bzw. new/delete.

Gruß
 
Du könntest die Zutaten in einem 'vector'-Objekt speichern, die sind im Gegensatz zum einfachen array in der Größe ohne viel Aufwand variabel dimensionierbar und können ebenfalls alle Arten von Objekten aufnehnen. Jede Zutat sollte als eigenes Objekt einer Klasse 'zutat' mit Name, Menge, etc. hinterlegt werden, kann man sehr schön in einer Datenbank machern
Falls du vor hast, Rezepte zu sammeln und auf einem Server bereitzustellen, das programmiert man nicht in C/C++, dafür gibt es Ruby, PHP, Java, C#, Python, VB und viele andere. Zu einer einfachen MySQL-DB gibt es auch die connectors im Inet.

Traveller
 
Ich habe ganz einfach in die Class eine Funktion eingebaut die das Item zum Rezept hinzufügt. Beim hinzufügen wird die größe der Array neu Diffiniert, somit ist es eine Individuelle größe.

Code:
Class Rezept
{
int size;
string Name;
int[] itemcosts,itemamount;

public Rezept()
{
Name = "N/A";
size = 0;
}
Public Rezept(string Name)
{
this.Name = Name;
}
Public AddToRezept(int Itemcosts, int itemamount)
{
this.size += 1;
Array.Resize(this.Itemcosts,this.size);
Array.Resize(this.Itemamount,this.size);
......
}
 
Zurück