将一系列指针分配给C 中的私人变量

Assigning an array of pointers to a private variable in C++

本文关键字:变量 一系列 指针 分配      更新时间:2023-10-16

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

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数组指针分配给此 -> dst。

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

因此,要修复代码:

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

确保src具有足够的元素。

请参阅声明函数:参数列表以获取更多详细信息:

如果类型是t的"数组"或" t"的"数组",则将其替换为"指针" t"

的类型