在类外部定义显式运算符 bool() 时出错

Error defining explicit operator bool() outside class

本文关键字:bool 出错 运算符 外部 定义      更新时间:2023-10-16

我在类外定义operator bool()函数时遇到问题

class A{
public:
explicit operator bool() const; 
};

我将类外的函数定义为...

explicit A::operator bool() const {
...
}

我收到此错误 -error: ‘explicit’ outside class declaration

我做错了什么?

就像你不应该为定义编写inline一样,如果你已经为声明编写了定义,你不允许在类定义之外编写explicit

它只能出现在其类定义中此类函数声明的decl-specifier-seq中。

因此,只需将其删除即可:

/*explicit*/ A::operator bool() const {
// ...
}