Par exemple, dans airplaysdk:
operator bool() const
{
return col!=0;
}
col
est un int.
Comment est - operator bool() const
travail?
Par exemple, dans airplaysdk:
operator bool() const
{
return col!=0;
}
col
est un int.
Comment est - operator bool() const
travail?
Fonctions de membre de la forme
operator TypeName()
sont des opérateurs de conversion. Ils permettent à des objets de la classe type à être utilisées comme si elles étaient de type TypeName
et quand ils le sont, ils sont convertis en TypeName
à l'aide de la fonction de conversion.
Dans ce cas particulier, operator bool()
permet à un objet de la classe type à être utilisé comme s'il s'agissait d'un bool
. Par exemple, si vous avez un objet de la classe type nommé obj
, vous pouvez l'utiliser comme
if (obj)
Cela va lancer l' operator bool()
, retourner le résultat, et utiliser le résultat que l'état de l' if
.
Il convient de noter que operator bool()
est Une Très Mauvaise Idée et que vous devriez ne jamais les utiliser. Pour une explication détaillée pour expliquer pourquoi il est mauvais et pour la solution du problème, voir "La Sécurité Bool Idiome."
(C++0x, la prochaine révision de la Norme C++, ajoute le support pour les opérateurs de conversion explicite. Ces éléments vont vous permettre d'écrire un coffre - explicit operator bool()
qui fonctionne correctement sans avoir à sauter à travers les cerceaux de la mise en œuvre de la Sécurité Bool Idiom.)
operator bool() const
{
return col != 0;
}
Définit la façon dont la classe est convertible en une valeur booléenne, l' const
après l' ()
est utilisé pour indiquer que cette méthode ne permet pas de muter (changer les membres de cette classe).
Vous devez généralement utiliser ces opérateurs comme suit:
airplaysdk sdkInstance;
if (sdkInstance) {
std::cout << "Instance is active" << std::endl;
} else {
std::cout << "Instance is in-active error!" << std::endl;
}
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.