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

use*_*375 2 c++ explicit explicit-conversion c++11

operator bool()在课外定义函数有问题

class A{

public:
    explicit operator bool() const; 
};
Run Code Online (Sandbox Code Playgroud)

我在课外定义函数为......

explicit A::operator bool() const {
    ...
}
Run Code Online (Sandbox Code Playgroud)

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

做错了什么?

Rak*_*111 6

inline如果您已经为声明编写了它,就像您不应该为定义编写一样,您不能explicit在类定义之外编写:

它可能只出现在类定义中的这种函数声明的decl-specifier-seq中.

所以,只需删除它:

/*explicit*/ A::operator bool() const {
    // ...
}
Run Code Online (Sandbox Code Playgroud)