Maison > développement back-end > C++ > Comment puis-je comparer correctement des objets dans le tri C lors de l'utilisation de fonctions membres non statiques ?

Comment puis-je comparer correctement des objets dans le tri C lors de l'utilisation de fonctions membres non statiques ?

Linda Hamilton
Libérer: 2024-12-01 18:34:09
original
735 Les gens l'ont consulté

How Can I Correctly Compare Objects in C   Sorting When Using Non-Static Member Functions?

Comparaison des méthodes pour les opérations de tri

En C, lorsqu'on rencontre une erreur de compilation issue d'une tentative de prise d'adresse d'un non-qualifié ou une fonction membre non statique entre parenthèses, il est impératif de résoudre le problème principal. À des fins de tri, la solution consiste à garantir que la fonction de comparaison est statique.

Cependant, si la fonction de comparaison nécessite des données de la classe englobante, une approche alternative consiste à utiliser un foncteur de comparaison. En convertissant la fonction de comparaison en fonction Operator() dans une structure imbriquée, vous pouvez transformer la classe en foncteur de comparaison.

De plus, assurez-vous que la fonction doSort() a une valeur de retour. Par défaut, il ne renvoie rien, ce qui pourrait entraîner un comportement inattendu.

Si vous êtes déterminé à utiliser une fonction membre comme comparateur de tri sans la rendre statique, envisagez d'encapsuler la fonction dans la classe. Cette approche implique la création d'une structure imbriquée avec une fonction Operator() qui prend la fonction membre non statique comme argument.

En résumé, résoudre l'erreur de compilation dans le code fourni nécessite de comprendre les limites des pointeurs de fonction membre. et envisager des approches alternatives, telles que des foncteurs de comparaison ou des wrappers de structure, pour obtenir la fonctionnalité de tri souhaitée.

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