Überladener Konstruktor

Haben eine geänderte Aufgabenstellung bekommen, weil der "Chef" gemerkt hat das es zu kompliziert ist^^...vielleicht könnt ihr mir damit nochmal helfen.

Vorgehensweise, um überladenen Konstruktor zu nutzen:
Verlagern Sie das Menü in die Main Funktion!
Legen Sie eine Variable Menge in der Main-Methode mit dem Wert 10 an.
Übergeben Sie bei der Objekterzeugung mit überladenen Konstruktor diese zuvor angelegte Variable.
Dadurch wird jedes Mal, wenn sie ein Objekt mit überladenem Konstruktor angelegt wird, der Wert auf 10 gesetzt.
Bei Verwendung mit dem Standardkonstruktors wird der Wert der Menge mit 0 initialisiert.
 
Ich würde erstmal eine Klasse Artikel erstellen.
Außerdem eine Klasse für die Verwaltung von Artikeln.
-->Klasse Artikel, in der ich alle Methoden zum erstellen des Artikels reinmache?
-->Klasse Verwaltung, in der ich die Methoden für Einbuchung/Ausbuchung drin habe?

C++:
void setX(int x) {
  this->x = x;
}

kenn ich leider noch nicht diese anweisung....kann mir das jemand kurz erklären?

C++:
Artikelverwaltung menu_create() {
  case 1: // ohne Lieferung
    return Artikelverwaltung(); // Standardkonstruktor
  case 2: // mit Lieferung
    {
       cout << "wieviel Artikel? ";
       int anzahl;
       cin >> anzahl;
       return Artikelverwaltung(anzahl);

als rückgabewerte den Konstruktor?

C++:
 case 1: // Artikel anlegen
    verwaltung = menu_create();

Was bedeutet das? Ruft er das Objekt menu_create() auf?

Tut mir leid das ich so anstrengend bin^^....hab halt grad erst angefangen zu programmieren...:rolleyes:
 
-->Klasse Artikel, in der ich alle Methoden zum erstellen des Artikels reinmache?
-->Klasse Verwaltung, in der ich die Methoden für Einbuchung/Ausbuchung drin habe?
Ich weiß nicht wie genau die Aufgabe aussieht und was genau das Ziel der Übung sein soll / was eure Tutoren sehen wollen. Es ist sehr schwierig dir hier etwas zu empfehlen.

Eine Vorgehensweise bei OOP (Analyse) ist es ersteinmal die Substantive zu identifizieren um mögliche Klassen zu erkennen. In der Aufgabe ist die Rede von "Artikel" und von "Artikelverwaltung".

Das Problem ist, dass (wie so oft) eine Übungsaufgabe an den Haaren herbeigezogen ist und manchmal nicht viel Sinn macht / machen muss.

kenn ich leider noch nicht diese anweisung....kann mir das jemand kurz erklären?
Das war evlt. etwas unklar, da der Kontext fehlte. (oder weißt du nicht was this ist?)
C++:
class Z {
  int x; // privat. OOP -> information hiding
public:
  // Getter und Setter für das Attribut "x"
  int getX() const { return x; }
  void setX(int x) {
    this->x = x;
  }
};
als rückgabewerte den Konstruktor?
Nein, Rückgabewert ist eine Instanz der Klasse (siehe Rückgabetyp der Funktion). Hier wird der Konstruktor aufgerufen und somit eine Instanz erzeugt.
Was bedeutet das? Ruft er das Objekt menu_create() auf?
menu_create ist kein Objekt, es ist eine einfache Funktion.

Gruß
 
Ich danke euch :)
Auch wenn es immernoch nicht wirklich funktioniert, habt ihr mir ein ganzes Stück weiter geholfen ;-)
Ich werde meinen Prof mal fragen was er da wirklich haben wollte und fordere mal eine Musterlösung an...
 
Zuletzt bearbeitet:
Es funktioniert jetzt soweit...
Noch eine Frage:
Ich habe im Standardkonstruktor die Menge=0 gesetzt.
Wähle ich im Menü "Artikel anlegen mit Lieferung" , kann ich leider keinen Artikel anlegen, sondern er springt direkt wieder ins Menü..logisch, da ich ja in diesem Fall den Standardkonstruktor aufrufe, und dort nichts passiert, ausser das die Menge 0 gesetzt wird.
Lege ich die funktion "Artikel anlegen" zusätzlich darein, startet er ohne Menü mit dem artikel anlegen...
wie kann ich das Programm so ändern, dass ich das Menü zu Beginn habe und trotzdem bei Fall 1 (Artikel ohne Lieferung) einen Artikel anlegen kann?
 
Zurück