smart-pointers相关内容
请参见以下示例: #include#includeFoo类{上市:Foo(){std :: cout
..
这很难解释,但我会尽力而为.因此,我有一个RenderComponent,EventManager和RenderSystem.在我的RenderComponents构造函数中,我引发RenderSystem订阅的renderComponentCreated事件.使用事件args对象,我将一个RenderNode作为数据传递,该数据包含renderSystem绘制事物所需的信息(可绘制,位置和类型)
..
我想优化我的代码.我有一个具有shared_ptr数据成员的类.在此类的某些方法中,我创建了需要使用该成员的对象(只是从shared_ptr指向的对象中获取信息).我知道这些创建的对象的生命周期比我的主类要短.如何传递该指针?我认为不需要另一个shared_ptrs(因为我保证该对象将存在).那么,应该如何创建我创建的类?他们应该得到原始指针吗?Weak_ptr?还是最好的解决方案是获取share
..
我有一个库函数,需要四个指针数组作为参数: f(unsigned char * data [4]),并且我的代码中有一个智能指针数组: std :: unique_ptrmyArray [4] . 是否可以通过此库函数使用智能指针? 我已经尝试过了,但是它给了我一个段错误: f(reinterpret_cast(my
..
我有一个要从其继承的基类,并且在可以声明其任何派生类之前,必须至少声明一个该基类的实例.我正在考虑将基类的this pointer存储到其自己的unique_ptr成员变量中,而不是使用static_ptr.同样,基类将跟踪其派生类的所有实例,直到声明另一个基类为止.这是我的类声明的样子: #include #include #include
..
这是一个例子: use std::rc::Rc; #[derive(PartialEq, Eq)] struct MyId; pub fn main() { let rc_a_0 = Rc::new(MyId); let rc_a_1 = rc_a_0.clone(); let rc_b_0 = Rc::new(MyId); let rc_b_1 = rc
..
这是有关智能指针(例如唯一指针)的好答案:以下是他们提供的最简单使用唯一指针的示例: void f() { { std::unique_ptr ptr(new MyObject(my_constructor_param)); ptr->DoSomethingUseful(); } // ptr goes out of scope
..
我在C ++中有一个旧的工厂实现,我想在其中使用唯一的指针而不是原始指针.我的代码的一个最小示例如下.我有一个基类A和一个派生类B.在main()中,我将1传递给A中的create方法,并且b1的类型现在更改为B. #include #include class A { public: A() {} virtual void Foo() {}
..
假设我们有一个设计,其中一个对象集合可能对该集合中的其他对象具有往复依赖关系: struct Object { ... 虚拟void方法(); private: std :: vector>兄弟姐妹; }; 允许出现循环引用(并不代表退化的情况)。通常,循环引用将通过弱指针来解决,但这需要所有权的层次结构
..
我正尝试将QScopedPointers存储在QList中。 我找到了此评论 一个人也可以使用QList>。 – Kuba Ober 2014年1月14日在18:17 (此答案的第一条评论:
..
我有一个指向指针列表的指针,作为一个私有变量。我也有一个getter,它返回指向列表的指针。我需要保护它免受更改。 我找不到如何在此上使用reinterpret_cast或const_cast的方法。 class typeA { shared_ptr> l; public: shared_ptr
..
std :: unique_ptr :: operator-> 具有签名 pointer operator->()const noexcept; 所以 operator-> 是const但返回一个可变的指针。这允许使用以下代码: void myConstMemberFunction()const { myUniquePtrMember-> nonConst
..
当我尝试使用静态常量初始化 unique_ptr 时,出现“未定义引用”错误。但是,当我使用相同的常量 new 指针时,该符号似乎已被神奇地定义。 这里是复制错误的简单程序: Outside_library.h class Outside_library { public: static const int my_const = 100; };
..
#include 班级栏{}; void foo(bar& object){ std :: unique_ptr指针=& object; } 我想将对象的地址分配给指针。上面的代码显然不会编译,因为赋值运算符的右侧需要是std :: unique_ptr。我已经尝试过: pointer = std :: make_uni
..
在阅读RAII之后,查看 Herb Sutter的CppCon2014演示文稿,然后阅读核心指南和相关 文章几天来,我仍然对所有权和相关语义感到困惑。 假设类A和类B代表物理实体,并且有一个Scene类和一个Process类。如果愿意,Process类是一个 main 函数。在现实世界中,A可以获取B并实际保留它。它也可以释放它。因此,在Process实例的过程中,A对象必须能够拥有一个B实
..
因此,我已经做了(少量)阅读,并且知道与原始指针结合使用的unique_ptr 是建模唯一所有权时要使用的模式。 但是,我真的很喜欢简单而清晰的概念,即使用weak_ptr来检查值是否有效,然后在使用完后丢弃shared_ptr,这样可以使所有人 我现在的特殊问题是创建一个富有表现力且灵活的系统来跟踪多点触摸,使用起来似乎很优雅代表触摸的对象的破坏是触摸已结束的信号。如果我使用原始指针
..
我正在阅读最新的过载(链接),并决定进行测试第8页上的语句: shared_ptr将在范围出口处正确调用B的析构函数,即使 ,尽管A的析构函数不是虚拟的。 我正在使用Visual Studio 2013,编译器v120: #include #include 结构A { 〜A(){std :: cout
..
我正在尝试将来自OpenCV的C-API(CvPOSITObject)的对象包装到智能指针中。据我了解,它应该类似于以下内容: unique_ptr positObject; positObject = unique_ptr
..
因此,我的理解是,当对象的最后一个剩余所有者被销毁或重新分配时,shared_ptr会自动从内存中取消分配(似乎太好了,难以置信吗?),当许多实例共享同一对象时,它很有用。是吗? 因此,在我的情况下,我正在制作2D平铺的世界,所以我要在屏幕上绘制许多相同的纹理。 我有 std :: map> Tiledb; 存储所
..
void f1(unique_ptr
..