Когда я использую explicit
с bool
для преобразования параметра, я получаю эту ошибку:
ошибка C2178: «sdds::Ship::operator bool» не может быть объявлен со спецификатором «явный».
Моя цель с этой функцией состояла в том, чтобы использовать ее для преобразования оператора 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
из определения и использовать его только в объявлении. - person Sam Varshavchik   schedule 24.06.2020