指向类对象的新指针数组
New array of pointers to class objects
我希望类OUT
包含一组IN
指针。有多少是未知的。这就是我目前所拥有的。
class OUT{
class IN{/**/};
IN** IN_handle;
int m_size_in;
OUT(int size_in):m_size_in(size_in){
IN_handle = new *IN[size_in];
}
~OUT(){
for(int i=0; i<m_size_in; i++){
delete IN_handle[i];
}
delete IN_handle;
}
};
编译器 说:
无法在赋值中将"int**"转换为"OUT::IN**"
使用 std::vector
和 std::unique_ptr
将为您节省大量工作:
#include <vector>
#include <memory>
class OUT{
public:
class IN{/**/};
std::vector<std::unique_ptr<IN>> IN_handle;
void add(std::unique_ptr<IN> &&new_data)
{
IN_handle.push_back(std::move(new_data));
}
OUT()
{
}
~OUT()
{
}
// Functions to manipulate IN_handle
};
并使用它:
OUT out;
out.add(std::make_unique<OUT::IN>());
从 http://www.cplusplus.com/reference/vector/vector/:
向量是表示大小可以更改的数组的序列容器。
此外,std::unique_ptr
负责删除分配的内存,因此无需担心这一点;)
使用std::vector
和std::unique_ptr
的组合作为矢量元素。不要手动管理指针或动态数组。
相关文章:
- 指向指向字符数组的指针数组的指针
- 通过指向指针数组的指针访问子类的属性
- C++,指针数组,指向双链表中的条目
- 在C++中,如何初始化指向wchar_t*的指针数组(生成wchar_t**)
- C++从函数指针数组调用函数
- 关于指向指针数组的指针
- 将返回值存储在函数指针数组的指针中是如何工作的?
- 将链表转换为指针数组时出错
- C++ 对象指针数组的复制构造函数
- C++ - 循环访问指针数组会导致错误
- 删除指针数组 (C++) 中的元素
- 如何循环访问 cpp 中的函数返回的字符指针数组
- 将函数指针数组中的函数指针作为模板参数传递
- Google Or-Tools Glop:如何创建指向 const 对象的指针数组?
- 具有推导参数的模板函数指针数组变量
- 如何模板化堆栈分配的多态指针数组到接口,包括派生类型的相应点?
- C++指针数组到字符数组中的特定位置
- 如何在C++中复制指针数组的数据
- 初始化类中的指针数组,并在另一个类中检索它
- 尽管直接设置了指针数组,但仍为空