Maison > développement back-end > C++ > Pourquoi une « référence non définie à WindowsTimer :: _ Frequency » se produit-elle et comment est-elle corrigée ?

Pourquoi une « référence non définie à WindowsTimer :: _ Frequency » se produit-elle et comment est-elle corrigée ?

Patricia Arquette
Libérer: 2024-12-25 14:21:10
original
319 Les gens l'ont consulté

Why Does

Référence non définie à un membre statique

Cette erreur se produit lorsque le compilateur ne trouve pas la définition d'une variable membre statique. Dans ce cas, il s'agit de la variable membre statique _fréquence de la classe WindowsTimer.

Comprendre le code

Le code présenté est :

class WindowsTimer {
public:
  WindowsTimer() {
    _frequency.QuadPart = 0ull;
  }
private:
  static LARGE_INTEGER _frequency;
};
Copier après la connexion

Ici, _ Frequency est une variable membre statique de type LARGE_INTEGER, qui est déclarée mais non définie dans le class.

Résolution de l'erreur

Le message d'erreur "référence non définie à WindowsTimer::_ Frequency" indique que le compilateur ne trouve pas la définition de _ Frequency. Les variables membres statiques doivent être définies en dehors de la déclaration de classe, généralement dans le fichier d'implémentation (.cpp).

Pour résoudre l'erreur, ajoutez la définition suivante au fichier .cpp :

LARGE_INTEGER WindowsTimer::_frequency;
Copier après la connexion

Cela créera une variable globale de type LARGE_INTEGER nommée _fréquence qui est liée à la classe WindowsTimer.

Pourquoi les autres changements Cela n'a pas fonctionné

  • Changer _fréquence en _fréquence.QuadPart définirait uniquement le membre QuadPart de la structure LARGE_INTEGER, mais pas la _fréquence elle-même.
  • Changer _fréquence en LARGE_INTEGER statique _ Frequency.QuadPart tenterait de redéfinir _ Frequency en tant que variable statique de type LARGE_INTEGER.QuadPart, ce qui est incorrect.

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 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