我有一个非常通用的irb(main):001:0> RUBY_VERSION
=> "1.8.7"
irb(main):002:0> "foo".to_sym
=> :foo
类。 (如下所示)我试图将指针存储在Basic
中以存储在向量unique_ptr<Basic>
vector<unique_ptr<Basic>>
还有另一个[host]类包含此向量,并包含此成员:
class Basic:
public BaseClass
{
public:
Basic();
~Basic();
};
void BasicManagement::CreateBasicEntry(){
unique_ptr<Basic> e_Basic = p( new Basic() );
LocalBasicQueue.push_back(e_Basic);
}
是LocalBasicQueue
的位置。也许我的初始化是错误的,但是我得到了intellisense错误,我似乎无法指定一个指向新类实例的指针存储在向量中。
(“p”的编译器错误)vector<unique_ptr<Basic>>
答案 0 :(得分:3)
unique_ptr
的构造函数是显式的。你应该像这样构建e_Base
:
unique_ptr<Basic> e_base{new Basic};
另请注意,您不能只push_back
unique_ptr
,因为它不可复制。你需要std::move()
它。
答案 1 :(得分:0)
不要写new Basic()
,而是使用new Basic
。