在我的Array.h文件中声明构造函数:
explicit Array(unsigned );
我正在Array.cpp中实现它:
explicit Array::Array(unsigned size ): size(size) {}
我收到了编译错误:
只有构造函数的声明才能明确'
错误在哪里?
答案 0 :(得分:0)
cpp文件中不需要显式,Array::Array(unsigned size ): size(size) {}
就足够了。
答案 1 :(得分:0)
答案在错误消息中。您不应该在定义中重复explicit
关键字。
答案 2 :(得分:0)
根据C ++标准
6显式说明符只能用于声明a 构造函数或转换函数在其类定义中;看到 12.3.1和12.3.2。
因此,只有在类定义中声明构造函数或转换函数时,才可以使用函数说明符explicit
。
对于错误消息,它是不明确的,因为函数定义也是它们的声明。:)