alternative zu strdup

Ich Schreibe ein C++ - Klasse für ein Buch, das einen Namen enthält:

class Book {
private:
    char* nm;
..........
............
..........
...........
};

Darf ich nicht verwenden std::string in diese Abtretung an. So hier bin ich mit strdup kopieren Sie den Wert des Parameters name in nm, die im Konstruktor:

Book::Book(const char *name, int thickness, int weight)
    : nm(NULL)
    , thck(thickness)
    , wght(weight)
{
    if (name)
        nm = strdup(name);
}

Gibt es eine alternative zu erreichen das gleiche Ergebnis ohne Verwendung strdup, sondern mithilfe des keyword - new statt?

In der Regel verwenden Sie std::string aber was genau meinst du mit "ohne mit der C++ STL Bibliothek"? d.h. welche Teile der standard-Bibliothek, die Sie versuchen zu vermeiden (und warum)?
Warum können Sie nicht einfach verwenden strdup? Du fragst nach einem tool, etwas zu tun, während Sie sich weigert, mit der ideal.
es ist eine Einschränkung für die Belegung... vielleicht sollte ich hinzufügen, ein Hausaufgaben-tag da... und ja, STL-ich meine, mit string
wahrscheinlich es sollte ein weiterer tag not-a-real-problem ...
Diese Zuordnung muss zunächst konzipiert worden, bevor strdup war Teil der standard-Bibliothek. Sicherlich die Antwort auf die Frage "Wie würden Sie duplizieren Sie eine Zeichenfolge ohne strdup?" sollte " Warum sollte ich?" 🙂

InformationsquelleAutor aherlambang | 2010-03-14

Schreibe einen Kommentar