Maison  >  Article  >  développement back-end  >  Une fonction C++ peut-elle être déclarée statique ? Quelles sont les caractéristiques des fonctions statiques ?

Une fonction C++ peut-elle être déclarée statique ? Quelles sont les caractéristiques des fonctions statiques ?

WBOY
WBOYoriginal
2024-04-21 10:09:01904parcourir

Les fonctions statiques sont déclarées statiques en C++ et ont les caractéristiques suivantes : elles ne sont visibles que dans le fichier dans lequel la fonction est déclarée, n'appartiennent à aucune classe, la mémoire est allouée au démarrage du programme et les membres non statiques ne peuvent pas être accédé. Par exemple, un extrait de code qui utilise une fonction statique pour calculer l'aire d'un cercle peut calculer efficacement l'aire d'un cercle étant donné un rayon donné.

C++ 函数可以声明为静态函数吗?静态函数的特点是什么?

Fonction statique en C++

Déclaration de fonction statique

Une fonction en C++ peut être déclarée comme fonction statique, il suffit d'ajouter le mot-clé static avant la fonction, la syntaxe est la suivante :

static void function_name();

Static Fonctionnalités de la fonction

Les fonctions statiques ont les fonctionnalités suivantes :

  • Portée : Uniquement visible dans le fichier où se trouve la fonction.
  • Lié à la classe : N'appartient à aucune classe ou objet.
  • Gestion de la mémoire : Enregistrée dans la zone statique, la mémoire n'est allouée qu'une seule fois au démarrage du programme, et ne sera ni créée ni détruite avec les appels de fonction.
  • Membres non statiques non accessibles : Étant donné que les fonctions statiques n'appartiennent à aucune classe, les membres non statiques (y compris les membres de données et les méthodes non statiques) ne sont pas accessibles.

Exemple pratique

Considérez l'exemple de code suivant qui utilise une fonction statique pour calculer l'aire d'un cercle :

#include <iostream>
#include <cmath>

// 静态函数计算圆形的面积
static double calculate_area(double radius) {
    return M_PI * pow(radius, 2);
}

int main() {
    double radius;
    std::cout << "输入圆形半径:";
    std::cin >> radius;

    // 调用静态函数
    double area = calculate_area(radius);

    std::cout << "圆形的面积为:" << area << " 平方单位" << std::endl;

    return 0;
}

Sortie :

输入圆形半径:5
圆形的面积为:78.5398 平方单位

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