与显式类相关的错误

时间:2014-03-23 21:06:21

标签: c++

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

  explicit Array(unsigned );   

我正在Array.cpp中实现它:

explicit Array::Array(unsigned size ): size(size) {}

我收到了编译错误:

  

只有构造函数的声明才能明确'

错误在哪里?

3 个答案:

答案 0 :(得分:0)

cpp文件中不需要显式,Array::Array(unsigned size ): size(size) {}就足够了。

答案 1 :(得分:0)

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

答案 2 :(得分:0)

根据C ++标准

  

6显式说明符只能用于声明a   构造函数或转换函数在其类定义中;看到   12.3.1和12.3.2。

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

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