Gibt es Probleme mit der allokierung von Speicher innerhalb der Konstruktor-Initialisierung-Listen?

Benutzt habe ich die Initialisierung führt eine große Sache in meinem C++ - Programme, war aber nicht bewusst, dass man Speicher zuordnen.

So können Sie etwas tun (als ein erfundenes Beispiel) wie folgt:

class Test
{
private:
    int* i;
    int* j;
    int count;
    int* k;

public:
    Test(void) : i(new int), j(new int[10]), count(10), k(new int[count])
    {
    }

    ~Test(void)
    {
        delete i;
        delete [] j;
        delete [] k;
    }
};

Gibt es irgendwelche Probleme bei der Speicher-allocation in dieser Weise? Über die Reihenfolge der Initialisierung hier ist es sicher, ein parameter initialisiert, indem man die Initialisierung im gleichen Liste? also als ich reservieren count bevor ich es verwenden, ist es sicher zu bedienen oder gibt es da eine spezielle Initialisierung, um die ich fallen könnte foul von?

InformationsquelleAutor der Frage Firedragon | 2012-01-30

Schreibe einen Kommentar