私はunique_ptrで配列を使用しようとしていますが、成功しません。
いくつかのサイズのunique_ptrを宣言する正しい方法は何ですか?
(サイズは一部のパラメータです)ここでC++のunique_ptrと配列
unique_ptr<A[]> ptr = make_unique<A[]>(size);
は例です:
#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);
}
これは私がAのコンストラクタを削除した場合、それは動作しますが、しかし、機能していません。
私は3の配列のサイズを表現し、Aのコンストラクタの引数ではなく、どのようにしてそれを起こさせたいのですか?
ヒント動作するはずです:使用4つのスペースのインデントを使用していないのはなぜコード – Drop
としてテキストをマークするが'std :: unique_ptr> ptr = make_unique >(3);'? –
または代わりに 'std :: unique_ptr> ptr = make_unique >();' –