与显式类连接的错误

error connected with explicit class

本文关键字:错误 连接      更新时间:2023-10-16

在我的Array.h文件中声明了构造函数:

  explicit Array(unsigned );   

我在array。cpp:

中实现了它
explicit Array::Array(unsigned size ): size(size) {}

和我得到编译错误:

只有构造函数的声明可以是"显式的"

错误在哪里?

您不需要在cpp文件中显示,Array::Array(unsigned size ): size(size) {}应该足够了。

答案在错误消息中。您不应该在定义中重复explicit关键字。

根据c++标准

6显式说明符只能用于类定义中的构造函数或转换函数;看到

因此,只有在类定义中声明构造函数或转换函数时,才可以使用函数说明符explicit

对于错误消息,它是模糊的,因为函数定义也是它们的声明。:)