C ++: Dynamisches Zuordnen eines Member-Arrays von Strukturen mit einem nicht standardmäßigen Konstruktor

8

Wenn ich:

%Vor%

Ich kann:

%Vor%

Aber ich kann nicht tun:

%Vor%

Gibt es eine korrekte Syntax, um das zu erreichen? Oder eine einfache Arbeit?

    
Matt Munson 26.05.2011, 22:53
quelle

4 Antworten

5

Wenn die STL eine Option ist, könnten Sie anstelle eines dynamischen Arrays std :: vector verwenden.

Ich denke , dass das funktioniert:

%Vor%

Wenn nicht, sollte dies:

%Vor%     
CariElf 26.05.2011, 23:02
quelle
3

Sie könnten einen rohen Speicherblock reservieren und placement new verwenden, um jedes struct :

zu initialisieren %Vor%

Siehe auch: Welche Verwendungen gibt es für "Placement new"?

    
Tony the Pony 26.05.2011 23:18
quelle
0

Sie könnten ein Array von Zeigern für Zeiger verwenden. Dann können Sie das Array erstellen, das Zeiger auf a_struct () enthält, damit Sie später entscheiden können, welcher Konstruktor verwendet werden soll:

%Vor%     
ralphtheninja 26.05.2011 23:08
quelle
0

Sie können dies nicht direkt für einen bestimmten parametrisierten Konstruktor tun. Wie auch immer Sie es tun,

%Vor%

Wenn Sie den Speicher freigeben möchten,

%Vor%

Ich schlage vor, einen std::vector Container zu verwenden, anstatt diesen Prozess zu durchlaufen.

    
cpx 26.05.2011 23:12
quelle