Maison > développement back-end > C++ > le corps du texte

Quelle est la différence entre les fonctions statiques C++ et les fonctions globales ?

WBOY
Libérer: 2024-04-17 08:54:01
original
1171 Les gens l'ont consulté

Les fonctions statiques ne sont visibles que dans la classe, sans instance de classe, et sont utilisées pour les méthodes de classe d'outils ; tandis que les fonctions globales sont visibles dans l'ensemble du programme, sans classe ni instance, et sont utilisées pour des fonctions indépendantes.

C++ 静态函数与全局函数有什么区别?

La différence entre les fonctions statiques et les fonctions globales en C++

Introduction
En C++, les fonctions statiques et les fonctions globales sont deux types de fonctions avec des fonctions et des portées différentes. Comprendre les différences entre eux est crucial pour écrire un code clair et maintenable.

Fonctions statiques
Les fonctions statiques sont similaires aux fonctions membres ordinaires, sauf qu'elles ne peuvent pas accéder aux données membres non statiques de la classe. Ils sont généralement utilisés pour implémenter des méthodes de classe utilitaire qui ne nécessitent pas d'accès à l'état de la classe.

Déclaration et définition

class MyClass {
public:
    static int add(int a, int b) { return a + b; }
};
Copier après la connexion

Portée et appelabilité
Les fonctions statiques ne sont visibles que dans la portée de la classe. Cela signifie qu'ils peuvent être appelés directement par le nom de la classe sans créer d'instance de la classe.

int result = MyClass::add(10, 20); // 输出 30
Copier après la connexion

Fonctions globales
Les fonctions globales n'appartiennent à aucune classe. Ils sont visibles sur toute la portée du programme. Ils sont utilisés pour définir des fonctionnalités indépendantes de la classe, telles que les opérations d'E/S ou les opérations mathématiques.

Déclaration et définition

int add(int a, int b) { return a + b; }
Copier après la connexion

Portée et appelabilité
Les fonctions globales sont accessibles et appelées depuis n'importe où dans le programme.

int result = add(10, 20); // 输出 30
Copier après la connexion

Tableau de différences

Caractéristiquesfonctions statiquesfonctions globales
Visibilitélimitée à la classe uniquementportée du programme
AccessibilitéAucun cours requis Instance Pas besoin de classes ou d'instances
PortéeIntra-classeL'ensemble du programme
ObjectifMéthodes de classes d'outilsFonctions indépendantes

Pratique cas

Exemple 1 : Fonction statique
Créez une classe Math qui contient une fonction statique calculateArea qui calcule l'aire d'un cercle. Math 类,其中包含一个静态 calculateArea 函数,该函数计算圆的面积。

class Math {
public:
    static double calculateArea(double radius) { return (3.14 * radius * radius); }
};
Copier après la connexion

调用:

double area = Math::calculateArea(5); // 输出 78.5
Copier après la connexion

示例 2:全局函数
定义一个 displayMessage

void displayMessage(const string& message) {
  cout << message << endl;
}
Copier après la connexion

Appel :

displayMessage("Hello world!"); // 输出 "Hello world!"
Copier après la connexion

Exemple 2 : Fonction globale Définissez une fonction globale displayMessage qui imprime le message qui lui est transmis.
rrreee

🎜Appel : 🎜🎜rrreee🎜🎜Conclusion🎜🎜Comprendre la différence entre les fonctions statiques et globales est crucial pour écrire du code C++ clair et maintenable. Les fonctions statiques sont utilisées pour les méthodes de classe utilitaire au sein d'une classe, tandis que les fonctions globales sont utilisées pour les fonctionnalités indépendantes disponibles dans la portée du programme. 🎜

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!

Étiquettes associées:
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal