In der Aufgabenstellung stand "Fächer von 1 bis 8", daher habe ich 8 geschrieben, aber wenn du 10 haben möchtest, ist das ja auch so OK.
Und bei der Lagerplatz-Klasse solltest du dann noch eine setProduct-Funktion erzeugen.
PS:
Lagerplatz::Lagerplatz(Produkt a, int b) {
prod = &a;
}
Dies erzeugt einen sog. "dangling pointer", da du die Adresse von dem Parameter (welches eine Kopie des übergebenen Arguments hier ist) speicherst.
Am besten, du benutzt hier generell nur Wertetypen ("value types") und keine Zeiger (denn die Klasse Produkt so wie du sie oben hast, ist ja einfach kopierbar).