在我的头文件中,我有以下代码
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。
答案 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"
的指针取代