Ich versuche Arrays mit unique_ptr ohne Erfolg zu verwenden.
Was ist der richtige Weg, ein unique_ptr einiger Größe zu deklarieren?
(Größe ist etwas Parameter).C++ unique_ptr und Arrays
unique_ptr<A[]> ptr = make_unique<A[]>(size);
Hier ist ein Beispiel:
#include <iostream>
#include <string>
#include <vector>
#include <functional>
#include <memory>
using namespace std;
class A {
string str;
public:
A(string _str): str(_str) {}
string getStr() {
return str;
}
};
int main()
{
unique_ptr<A[]> ptr = make_unique<A[]>(3);
}
Dies ist jedoch nicht funktioniert, wenn ich den Konstruktor von A löschen, es funktioniert.
Ich möchte die 3 die Größe des Arrays darstellen, und kein Argument für A's Konstruktor, wie mache ich das?
Hint arbeiten: Verwenden Sie 4 Leerzeichen Einrückung Text als Code – Drop
markieren Warum nicht mit 'std :: unique_ptr> ptr = make_unique > (3);'? –
oder alternativ 'std :: unique_ptr> ptr = make_unique >();' –