【发布时间】:2017-11-07 17:49:25
【问题描述】:
我有一个带有指针数组的类,它在构造函数中动态分配。这个类还有一个填充数组的函数。
HolderClass::HolderClass(int number)
{
arrayOfPointers = new ItemClass*[number];
}
HolderClass::addItem(int number, ItemClass item)
{
arrayofPointers[number] = &item;
}
即使这会编译,我的理解是否正确,因为 item 变量的生命周期仅在 addItem 函数的持续时间内,我实际上会用悬空指针填充数组?
用指向传入项的指针填充 arrayOfPointers 的正确方法是什么?这里的一个复杂性是 ItemClass 的子类将被传递给 addItem 函数,所以我不相信可以使用默认的复制构造函数。
编辑:此代码适用于 Arduino,因此我在可以做什么和不可以做什么方面受到相当的限制。这也意味着我想为这个类的用户保留一些东西(因为有很多 Arduino 新手),而不要求他们传递指向 addItem 函数的指针(这将要求他们管理传递的生命周期在 ItemClass 对象中)。
【问题讨论】:
标签: c++ arrays pointers inheritance arduino