Hat Foo nach dem folgenden Code einen Kopierkonstruktor? Ist es sicher, Foo mit STL-Containern zu verwenden?
%Vor%Der Standard besagt explizit, dass ein Kopierkonstruktor ein Konstruktor ohne Templaten ist, der eine Referenz auf ein möglicherweise konstant flüchtiges Objekt desselben Typs verwendet. Im obigen Code haben Sie einen -Konvertierung -Konstruktor, aber nicht -Kontext (dh er wird für alles verwendet, aber kopiert, wo der implizit deklarierte Konstruktor steht verwendet werden).
Hat
Foo
einen Kopierkonstruktor?
Ja, der implizit deklarierte / definierte Kopierkonstruktor.
Ist es sicher,
Foo
mit Standard-Bibliothekscontainern zu verwenden?
Mit der aktuellen Definition von Foo
ist es das, aber im allgemeinen Fall hängt es davon ab, welche Mitglieder Foo
hat und ob der implizit definierte Kopierkonstruktor diese korrekt verwaltet.
Foo
hat einen vom Compiler generierten Kopierkonstruktor, der nicht durch den von Ihnen bereitgestellten Vorlagenkonvertierungskonstruktor ersetzt werden kann.
Tags und Links c++