Zeiger und Konstruktoren bei dynamischen Arrays
-
Hallo,
ich habe eine Klasseclass Auto, die den Konstruktor
Auto(int neuPS){PS = neuPS;}hat. Im private Bereich findet sich natürlich ein Int namens PS.
Nun möchte ich einen dynamischen Fuhrpark erzeugen:int Autoanzahl; Auto* Fuhrpark; Fuhrpark = new Auto(100)[Autoanzahl];Tja und hier liegt das Problem: Der Compiler meckert, weil er mit dem Konstruktor nicht zurechtkommt.
-
hallo,
new kann damit nicht umgehen. besser, du verwendest
std::vector, da arbeitest du auch automatisch dynamisch und ersparst dir lästige arbeit mit rohem speicher.std::vector<Auto> fuhrpark (100, Auto(42)); //zugriff wie mit arrays: fuhrpark[23].drive_away();//PS: die alternative wäre wohl, mit algorithmen wie fill_n oder generate_n zu arbeiten.
Auto* fuhrpark = new Auto[100]; fill_n (fuhrpark, 100, Auto(42));es gibt noch eine hässlichere version, die willst du aber ganz sicher nicht verwenden.