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

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