Maison >développement back-end >C++ >Pourquoi un membre entier statique const en C provoque-t-il une erreur d'éditeur de liens « Référence non définie » ?

Pourquoi un membre entier statique const en C provoque-t-il une erreur d'éditeur de liens « Référence non définie » ?

DDD
DDDoriginal
2024-12-10 20:28:11635parcourir

Why Does a Static Const Integer Member in C   Cause an

Référence non définie au membre entier const statique

Malgré l'idée fausse selon laquelle C permet de définir des entiers membres const statiques dans les définitions de classe, le code donné déclenche une erreur de l'éditeur de liens due à une référence non définie à test::N. Cette erreur survient lorsque le code tente d'utiliser la variable membre statique non initialisée.

Bien qu'il soit possible d'initialiser des entiers const statiques dans la déclaration de classe, cela ne constitue pas une définition. Pour résoudre le problème, le membre doit être défini séparément dans la portée de l'espace de noms, mais sans initialiseur.

Dans ce cas, puisque std::min prend ses paramètres par référence constante, une définition de test::N est requis. Sans la définition, l'éditeur de liens ne peut pas résoudre la référence à la variable membre.

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!

Déclaration:
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