在C ++中为私有变量分配指针数组

时间:2016-11-22 15:11:03

标签: c++ arrays pointers

在我的头文件中,我有以下代码

class ExEvent : public Event {
    public:
        ExEvent(
                Item* dst[SIZE],
                );
        ~ExEvent();
        Item* dst[SIZE];
};

在cpp文件中,我有以下代码

ExEvent::ExEvent(
        Item * dst[SIZE],
    ) : Event() {
    this->dst = &dst;
}

我收到以下错误:

error: array type 'Item *[15]' is not assignable
    this->dst = &dst;

有人可以解释为什么会发生此错误以及为什么我无法将dst数组指针指定给this-> dst。

1 个答案:

答案 0 :(得分:4)

在函数参数type[any-size]中实际上是type*。即事实上,ExEvent(Item*[SIZE])ExEvent(Item**)

因此,要修复代码:

ExEvent::ExEvent(Item* src[SIZE])
{
    std::copy_n(src, SIZE, this->dst);
}

确保src有足够的元素。

有关详细信息,请参阅declaring functions: parameter list

  

如果类型是" T"数组;或" T"未知界限的数组,它被类型"指向T"

的指针取代