Maison > développement back-end > C++ > Comment puis-je générer des valeurs à partir de classes C personnalisées à l'aide de la surcharge d'opérateurs ?

Comment puis-je générer des valeurs à partir de classes C personnalisées à l'aide de la surcharge d'opérateurs ?

Patricia Arquette
Libérer: 2024-12-29 20:15:10
original
973 Les gens l'ont consulté

How Can I Output Values from Custom C   Classes Using Operator Overloading?

Sortie de valeurs à partir de classes personnalisées : utilisation de l'opérateur<< Surcharge

Lorsqu'il s'agit de classes C personnalisées, afficher leurs valeurs directement sur la console peut présenter un défi. Pour résoudre ce problème, nous pouvons utiliser l'opérateur<< surcharge pour obtenir les formats de sortie souhaités.

Considérez une classe personnalisée nommée « maclasse ». Si vous essayez de générer une instance de cette classe en utilisant cout << x, la console peut afficher une adresse ou une valeur par défaut dénuée de sens. Pour personnaliser la sortie, vous pouvez surcharger l'opérateur<< pour votre classe.

Voici un exemple :

struct myclass {
    int i;
};

std::ostream &operator<<(std::ostream &os, myclass const &m) {
    return os << m.i;
}

int main() {
    myclass x(10);

    std::cout << x;
    return 0;
}
Copier après la connexion

Dans cet exemple, l'opérateur surchargé<< est défini pour le type myclass. Lorsque cout est invoqué avec un objet myclass (comme dans cout << x), il appelle l'opérateur surchargé<< fonction, qui renvoie à son tour un ostream avec la sortie souhaitée. Dans ce cas, il extrait la valeur entière i de l'objet myclass et l'envoie à la console.

Cela vous permet d'afficher des valeurs de classes personnalisées de manière significative, telles que des entiers ou des valeurs à virgule flottante, même si la classe elle-même ne prend pas directement en charge une telle sortie.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal