gpt4 book ai didi

c++ - 错误: bool 值不能用 'explicit'说明符声明

转载 作者:行者123 更新时间:2023-12-02 10:14:04 25 4
gpt4 key购买 nike

当我使用explicitbool转换参数时,出现此错误:

error C2178: 'sdds::Ship::operator bool' cannot be declared with 'explicit' specifier.


我使用此函数的目的是使用它来转换 bool运算符,如果该对象有效,则返回true,否则返回false。
explicit Ship::operator bool() const
{
bool check = true;
if (m_type == nullptr && strlen(m_type) == 0 && m_engines[0].get() > 0 && m_engCnt == 0)
{
check = false;
}
return check;
}
这是我的课:
class Ship
{
Engine m_engines[10];
char m_type[TYPE_MAX_SIZE];
int m_engCnt;
... public:
explicit operator bool() const;
...

最佳答案

无法为类外成员函数定义指定explicit;它只能在类定义中指定。
因此将其删除为

Ship::operator bool() const
{
bool check = true;
if (m_type == nullptr && strlen(m_type) == 0 && m_engines[0].get() > 0 && m_engCnt == 0)
{
check = false;
}
return check;
}

关于c++ - 错误: bool 值不能用 'explicit'说明符声明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62546641/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com