Salve a tutti. Anticipamente chiedo il perdono dal mio italiano a causa che non sono italofono.
Cercero di spiegarmi.
Ho due classi: "Prodotto" e "Supermercato", ho vari firme delle funzioni e implementazioni - qui ok.

Il problema e' il seguente. Quanto sono nel "main.cpp" e eseguo' il seguente codice:
codice:
cout<<"Inserisci codice prodotto: "; cin>>codiceProdotto;                cout<<"Inserisci descrizione prodotto: "; cin>>descrizioneProdotto;
                cout<<"Inserisci prezzo unitario del prodotto: "; cin>>prezzoUnitarioProdotto;
                cout<<"Inserisci quantita presente in negozio: "; cin>>quantitaNegozioProdotto;
                cout<<"Inserisci quantita presente in magazzino: "; cin>>quantitaMagazzinoProdotto;


                Prodotto *prodottoNuovo = new Prodotto(codiceProdotto,descrizioneProdotto,prezzoUnitarioProdotto,quantitaNegozioProdotto,quantitaMagazzinoProdotto);
                prodottoPresenteNegozioMagazzino->aggiungiProdotto((*prodottoNuovo));
ma prima giustamente istanzio un oggetto :
codice:
Supermercato *prodottoPresenteNegozioMagazzino = new Supermercato();
E mi si pianta il programma. Uso IDE Code::Blocks che comunque compila il smart-complition vede tutte le firme ok.


Esporto a voi il codice della "Prodotto.h" , "Prodotto.cpp", "Supermercato.h" e "Supermercato.cpp"
codice:
#ifndef PRODOTTO_H_INCLUDED#define PRODOTTO_H_INCLUDED


#include <string>


using namespace std;


class Prodotto {


private:
	int codice;
	string descrizione;
	float prezzoUnit;
	int quantitaNegozio;
	int quantitaMagazzino;


public:
	int getCodice();


	void setCodice(int codice);


	string getDescrizione();


	void setDescrizione(string descrizione);


	float getPrezzoUnit();


	void setPrezzoUnit(float prezzoUnit);


	int getQuantitaNegozio();


	void setQuantitaNegozio(int quantitaNegozio);


	int getQuantitaMagazzino();


	void setQuantitaMagazzino(int quantitaMagazzino);


	Prodotto(void);//Costruttore standard


	Prodotto(int in_codice, string in_descrizione, float in_prezzoUnit, int in_quantitaNegozio, int in_quantitaMagazzino);//Costruisco un oggetto


	Prodotto(const Prodotto &prodotto); //Costruttore di copia
};
#endif // PRODOTTO_H_INCLUDED
codice:
#include "Prodotto.h"

int Prodotto::getCodice() {
	return this->codice;
}


void Prodotto::setCodice(int codice) {
	this->codice = codice;
}


string Prodotto::getDescrizione() {
	return this->descrizione;
}


void Prodotto::setDescrizione(string descrizione) {
	this->descrizione = descrizione;
}


float Prodotto::getPrezzoUnit() {
	return this->prezzoUnit;
}


void Prodotto::setPrezzoUnit(float prezzoUnit) {
	this->prezzoUnit = prezzoUnit;
}


int Prodotto::getQuantitaNegozio() {
	return this->quantitaNegozio;
}


void Prodotto::setQuantitaNegozio(int quantitaNegozio) {
	this->quantitaNegozio = quantitaNegozio;
}


int Prodotto::getQuantitaMagazzino() {
	return this->quantitaMagazzino;
}


void Prodotto::setQuantitaMagazzino(int quantitaMagazzino) {
	this->quantitaMagazzino = quantitaMagazzino;
}


Prodotto::Prodotto(void)
{
    codice = 0;
    descrizione = "";
    prezzoUnit = 0.0;
    quantitaNegozio = 0;
    quantitaMagazzino = 0;
}


Prodotto::Prodotto(int in_codice, string in_descrizione, float in_prezzoUnit, int in_quantitaNegozio, int in_quantitaMagazzino) {
	this->codice = in_codice;
	this->descrizione = in_descrizione;
	this->prezzoUnit = in_prezzoUnit;
	this->quantitaNegozio = in_quantitaNegozio;
	this->quantitaMagazzino = in_quantitaMagazzino;
}


Prodotto::Prodotto(const Prodotto &prodotto)
{
    this->codice = prodotto.codice;
    this->descrizione = prodotto.descrizione;
    this->prezzoUnit = prodotto.prezzoUnit;
    this->quantitaNegozio = prodotto.quantitaNegozio;
    this->quantitaMagazzino = prodotto.quantitaMagazzino;
}
codice:
#ifndef SUPERMERCATO_H_INCLUDED
#define SUPERMERCATO_H_INCLUDED
#include <iostream>
#include "Prodotto.h"
class Supermercato {


private:
	Prodotto* prodotto;
	int fornimentoMagazzino;
	int trasferimentoNegozio;
	int ricercaProdotto;
	int vendiProdotti;
    int quantita = 0, quanMax = 1000;


public:


    Supermercato(void)
    {
        prodotto = new Prodotto[quanMax];
    }


    ~Supermercato()
    {
        delete[] prodotto;
    }
	void aggiungiProdotto(const Prodotto in_prodotto);


	int fornisciQuantitaMagazzino(int in_fornimentoMagazzino);


	int vendiProdotto(int in_vendiProdotti);


	void trasferisciProdottoDaMagazANegoz(int in_trasferimentoNegozio, Prodotto in_prodotto);


	string RicercaProdotti(int codice);


	int getQuantita();
};
#endif // SUPERMERCATO_H_INCLUDED
codice:
#include "Supermercato.h"
#include <ciso646> /** una libreria che converte gli operatori logici es. || in parola chiave "or"*/
#define quantitaMax 1000


void Supermercato::aggiungiProdotto(Prodotto in_prodotto)
{
	prodotto[quanMax] = in_prodotto;
	quantita++;
}


int Supermercato::getQuantita()
{
    return quantita;
}


int Supermercato::fornisciQuantitaMagazzino(int in_fornimentoMagazzino) {
	/**for (int i = 0; i < quantita; i++)
    {
        if (prodotto[i].getQuantitaMagazzino() == 0 or prodotto[i].getQuantitaMagazzino() >= 0)
            +=in_fornimentoMagazzino;
    }*/
}


int Supermercato::vendiProdotto(int in_vendiProdotti) {
    float prezzoTot;
	for (int i = 0; i < quantita; i++)
    {
        if (prodotto[i].getQuantitaNegozio() > 0)
            prezzoTot = prodotto->getPrezzoUnit()*(float)in_vendiProdotti;
    }
    return prezzoTot;
}


void Supermercato::trasferisciProdottoDaMagazANegoz(int in_trasferimentoNegozio, Prodotto in_prodotto) {
	// TODO - implement Supermercato::trasferisciProdottoDaMagazANegoz
	throw "Not yet implemented";
}


string Supermercato::RicercaProdotti(int codice) {
    for (int i = 0; i < quantita; i++)
    {
        if(prodotto[i].getCodice() == codice)
        {
            cout<<"Codice e' presente: "<<endl;
        }
            cout<<"Codice e' errato o non presente";
    }
    return 0;
}
Poi dovrei implementare le altri funzioni che non sono ancora state implementate. Perche' non saprei come farle. Mi sono abilitato a programmare in Java che li funziona la cosa un po diversamente. Prego aiutatemi...

In attesa di una Vostra rispota, le porgo distinti saluti.