包含其他类的指针的自定义类的向量
Vector of custom class contained pointer of other class
我正在编写一个带有矢量的简短代码,其中元素是自定义类对象。自定义类还包含指向另一个类的指针。在主进程中删除aPtr后释放b_ptr的内存,因为它只在push_back对象到矢量时复制指针(不是存储的数据(。有什么想法可以解决这个问题吗?(*shared_ptr 无法在我的系统中使用。
谢谢~
struct myStruct
{
vector<uint16_t> pers;
vector<string> strs;
};
class A
{
A(){ b_ptr = new B() };
B* b_ptr;
};
class B
{
B();
vector<myStruct> mStruct;
};
主要流程如下
main()
{
vector<A> v_of_a;
A* aPtr;
while(something != NULL)
{
aPtr = new A();
//Handling with data for property of A, vector data of B
v_of_a.push_back(*aPtr);
delete aPtr;
}
}
如果我
正确理解您的问题,那么您是在问"当 A 实例被释放时,我如何让b_ptr指向的内存被释放?
为此,您需要使用析构函数:
struct A {
A() {
b_ptr = new B();
}
~A() {
delete b_ptr;
}
B* b_ptr;
};
相关文章:
- 从具有自定义排序的向量创建集合
- 从自定义类获取对象向量中的 max 元素
- 自己的自定义向量类. 内存重新分配
- C++类中的类作为自定义向量(如何初始化?
- 从自定义数据类型向量中删除重复元素
- C++:自定义数据类型向量错误的队列
- 如何避免自定义 STL 向量类的智能指针 delete[] 异常?
- 在C++中使用带有自定义向量的迭代器
- 结构向量中自定义结构函数的内存使用
- C++ - 按自定义数据类型向量的值删除元素
- 自定义类对象的C++向量 - 复制构造函数已删除 - std::ifstream
- 创建自定义向量类错误
- 为什么C++在自定义结构向量时会出现 ostream 重载问题?
- std::排序为排序自定义对象时出现的向量引发错误
- 为什么我无法比较自定义类类型的两个向量?
- 对自定义元素向量进行排序时出现意外(至少对我来说)行为
- Boost ODEINT:具有自定义类和向量空间代数的受控步进器
- 通过引用将自定义结构的向量传递给 boost::compute 闭包或函数
- 为什么<wstring>使用自定义 wcscmp 和 wmemcmp 比较器对向量进行排序比默认快得多?
- 自定义类向量的类函数的分割错误