Quelqu'un m'a récemment demandé la différence entre un opérateur standard C++ (par exemple new, delete, sizeof) et une fonction (par exemple tan, free, malloc). Par "standard", je veux dire ceux fournis par défaut par la suite du compilateur, et pas défini par l'utilisateur. Ci-dessous étaient les réponses que j'ai données, mais aucune ne semblait satisfaisante.Opérateurs vs fonctions en C/C++
(1) Un opérateur n'a pas besoin d'en-têtes à inclure pour l'utiliser: E.g. vous pouvez avoir un appel à nouveau sans inclure d'en-têtes. Cependant, une fonction (par exemple free()) nécessite des en-têtes inclus, obligatoirement. (2) Un opérateur est défini comme tel (c'est-à-dire comme opérateur de classe) quelque part dans les en-têtes standard. Une fonction n'est pas.
Pouvez-vous critiquer ces réponses et me donner une meilleure idée de la différence?
est-ce que "supprimer" est utilisé intentionnellement dans les deux ensembles? – Sev
Voir http://stackoverflow.com/questions/184537/in-what-cases-do-i-use-malloc-vs-new – nico
Non, corrigé maintenant – PKG