Een array van objecten

Status
Niet open voor verdere reacties.

Twannio

Nieuwe gebruiker
Lid geworden
24 mei 2007
Berichten
2
Om een netwerk te representeren heb ik de klasse arc gemaakt. Deze klases bevat 3 (short) integers. Ik zou nu graag een array van arcs maken, die bij voorkeur na elkaar in het geheugen staan, zodat *(&Arc[1] + 1) naar Arc[2] verwijst. Een manier om dit te doen is eerst een rijtje 'lege' arcs aanmaken en deze daarna 'vullen' met replacement new:

arc Arcs[10];
for(int i = 0; i < 10; i++)
new (&Arcs) arc(1,2,3);

Dit werkt echter alleen als ik een default constructor maak, dus eentje zonder parameters. Dit wil ik echter eigenlijk liever niet, omdat ik dan in de rest van mijn programma zou moeten testen of de variabelen geinitializeerd zijn.

Ik ben daarom benieuwd of er ook een andere manier is om dit te doen. Ik wil liever niet een array van pointers maken, omdat het dan moeilijker is om van de ene naar de andere arc te gaan, en omdat het geheugengebruik dan 1.5 keer zo groot wordt. (Dit is problematisch omdat mijn netwerk nogal groot is! :))

[Edit]
In c bestond de functie malloc(), die zou doen wat ik zou willen! Is die functie nog beschikbaar in c++? En hoe zou je het daarme kunnen oplossen?
[/Edit]

Ik hoop dat iemand me kan helpen!
 
Laatst bewerkt:
malloc kan je in c++ idd nog steeds gebruiken.. hoewel ik je daar niet verder mee kan helpen.

Door het gebruik van pointer-arrays icm new en delete heb ik malloc nl nog nooit nodig gehad.

--Johan
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan