Salve, ho da poco iniziato la parte di OOP del C++ e sto facendo un programma per la gestione di un magazzino utilizzando due classi (Prodotto e Magazzino). Le funzioni che ho implementato sono aggiunta del prodotto, eliminazione e stampa lista prodotti. Il problema è che non riesco a capire come fare la ricerca del prodotto ed eliminarlo in quanto non riesco a confrontare 2 oggetti (quelli presenti nella lista e quello che eliminare).
Posto il codice della classe Magazzino in quanto Prodotto la uso solo per creare appunto l'oggetto da inserire nell'array che viene gestito da Magazzino
#include "Magazzino.h"
#include <iostream>
#include <string>
#include <iomanip>
Magazzino::Magazzino(std::string magazzino) :
magazzino(magazzino) {
this->magazzino = magazzino;
}
void Magazzino::inserisci_prodotto(Prodotto p) {
if (cont < NUM_PRODOTTI) {
prodotto[cont] = p;
cont++;
} else {
std::cout << "Magazzino pieno" << std::endl;
}
}
void Magazzino::elimina_prodotto(Prodotto p) {
for (int i = 0; i < cont; i++) {
if (prodotto[i] == p) {
for (int j = i; i < cont - 1; j++) {
prodotto[j] = prodotto[j + 1];
}
}
}
}
void Magazzino::visualizza_prodotti_magazzino() {
std::cout << "Descrizione" << std::setw(10)
<< "Prezzo" << std::setw(20)
<< "Reparto" << std::endl;
for (int i = 0; i < cont; i++) {
std::cout << prodotto[i].GetDescrizione() << std::setw(10)
<< prodotto[i].GetPrezzo() << " €" << std::setw(20)
<< prodotto[i].GetReparto() << std::endl;
}
}