矢量、unique_ptr 和 Push_back 错误
我正在学习智能指针,并在以下示例test.cpp #include #include #include struct abstractShape { virtual void Print() const=0; }; struct Square: p…
为什么插入到unordered_map中的pair并且 double 总是插入第一项?
我尝试构建包含Vertoces和Edges的图形类。 我的顶点类: template class Vertex { private: T data; public: Vertex(const T &data_) : data(data_) {…
如何改进我的自定义 unique_ptr 类?我想意识到派生类可以转换为基类
我自己实现了一个unique_ptr类,如下所示,并用它来管理另一个类: namespace mcj { template class unique_ptr { public: unique_ptr(CallbackT* ptr…
为什么 = 默认成员初始值设定项请求 unique_ptr 析构函数的实例化,而 {} 则不然?
这是这个问题的后续内容: Does PIMPL idiom 实际上可以使用 std::unique_ptr? 完整示例使用多个文件,所以为了这个问题我在这里减少一下。完整的工作…
关于从函数返回 unique_ptr 的问题
根据文档,说 我们已经对本地价值观和功能进行了隐式移动 返回语句中的参数。以下代码仅编译 很好: std::unique_ptr; f(std::unique_ptr ptr) { 返回…
在类的组件中调用重写的函数
我有 4 个类:Customer、PickyCustomer、SegmentCustomer 和 Delivery。 Delivery 类中有一个名为 customer 的组件,如下所示: class Delivery { pri…
如何将 unique_ptr 的向量声明为类数据成员?
我想要一个 unique_ptr 的向量作为我正在创建的类的成员。 class Foo { [...] private: vector> barList; } 但随后我开始从 VS2010 编译器收到神秘的…
什么时候将 unique_ptr 与 STL 容器一起使用才有意义? (C++11)
unique_ptr 的容器似乎没有什么意义:您不能将它与初始值设定项列表一起使用,并且我无法迭代该容器(下面的解决方法)。我误解了什么吗?或者什么时…
为像所有权语义这样的原始指针返回 unique_ptr 是不好的做法?
我编写了一个静态工厂方法,它返回一个由另一个数据对象填充的新 Foobar 对象。我最近痴迷于所有权语义,并且想知道我是否通过让此工厂方法返回 uniqu…
应该`unique_ptr< T const [] >` 接受 `T*` 构造函数参数吗?
代码: #include using namespace std; struct T {}; T* foo() { return new T; } T const* bar() { return foo(); } int main() { unique_ptr p1( ba…
在这种情况下 unique_ptr 的行为应该是什么?
假设我有以下内容: std::unique_ptr pA; pA(new A); 在这个复杂的示例中,pA(new A); 的行为应该是什么? 据我所知,在 MSVC2010 中,default_delete…
处理 stl 容器中的智能指针
我有一个 Foo 类,它有一个指向 Shape 派生类的智能指针向量。 我正在尝试实现 at(index) 成员函数。以下是我直观地要做的事情: Foo myfoo; std::uni…
unique_ptr C++03 仿真中的 move 函数
我试图了解 C++03 模拟 unique_ptr 是如何实现的。 unique_ptr 很像 std::auto_ptr 但更安全。在 auto_ptr 隐式(即静默)转移所有权的情况下,它会抛…