Partage de technologie

Bases du C pour démarrer (1)

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

Bienvenue à tous sur le blog de Pirate Cat Ou——

Après une longue pause, continuons à étudier dur !

Table des matières

1.espace de noms espace de noms

La valeur d'existence de l'espace de noms :

Définition de l'espace de noms :

Utilisation de l'espace de noms :

2.Fonctions d'entrée et de sortie C++

utiliser:

3.Paramètres par défaut

4. Surcharge de fonctions

Conclusion:


1.espace de noms espace de noms

La valeur d'existence de l'espace de noms :

En C/C++, il existe un grand nombre de variables, fonctions et classes à apprendre ultérieurement. Les noms de ces variables, fonctions et classes existeront tous dans la portée globale, ce qui peut provoquer de nombreux conflits.Le but de l'utilisation des espaces de noms est de localiser les noms d'identifiant pour éviter les conflits de noms ou la pollution des noms. Le mot-clé namespace semble résoudre ce problème.

En bref, lorsqu'il existe plusieurs variables portant le même nom dans le même projet, cela peut éviter les conflits de noms ou la pollution de noms, et également faciliter la distinction. On peut dire qu’il est indispensable au développement de projets à grande échelle.

Définition de l'espace de noms :

L'espace de noms est le mot-clé de l'espace de noms. Ajoutez le nom de l'espace de noms après le mot-clé et ajoutez {} pour limiter la portée.

  1. namespace hdmo
  2. {
  3. int a = 1;
  4. }

Avis: Il n'est pas nécessaire d'ajouter ' ; ' après le dernier ' } ' de l'espace de noms, qui est différent d'une structure et similaire à une fonction.

L'essence d'un espace de noms est que nous créons un domaine indépendant de la portée globale. Tout comme chaque fonction a une portée, la portée des paramètres de chaque fonction est dans la portée de la fonction.Il en va de même pour les espaces de noms.La portée des fonctions, variables, etc. dans l'espace de noms se situe dans la portée limitée de l'espace de noms et doit être utilisée en appelant l'espace de noms., mais il convient de noter queLes variables de fonction dans l'espace de noms, etc., ont un cycle de vie global

L'espace de noms ne peut être défini que dans la portée globale et peut également être imbriqué.

Dans le même projet, les espaces de noms portant le même nom seront considérés comme le même espace de noms.

  1. namespace hdmo
  2. {
  3. int a = 1;
  4. }
  5. namespace hdmo
  6. {
  7. int b = 1;
  8. }

À l’heure actuelle, les deux hdmo représentent le même espace de noms.

La bibliothèque standard C++ est stockée dans l'espace de noms appelé std (standard) pour éviter les conflits avec les fonctions d'autres langages. C'est pourquoi les programmes C++ contiennent essentiellement un.

using namespace std;

Juste pour inclure la bibliothèque standard C++.

Utilisation de l'espace de noms :

Puisqu'un espace de noms est un domaine, si vous souhaitez utiliser ses variables de fonction et d'autres contenus en externe, vous devez utiliser un opérateur comme une structure pour réaliser cette opération.

L'opérateur d'appel d'un espace de noms est constitué de deux deux-points : :

  1. #include <stdio.h>
  2. namespace hdmo
  3. {
  4. int a = 1;
  5. }
  6. int a = 2;
  7. int main()
  8. {
  9. printf("%dn", a);
  10. printf("%dn", ::a);
  11. printf("%dn", hdmo::a);
  12. return 0;
  13. }

À partir des résultats de sortie, nous pouvons savoir que : lorsque le devant de :: est vide, les variables de la portée globale sont appelées par défaut.

Il existe trois manières d'utiliser des variables, des fonctions, etc. dans l'espace de noms :

1.accès unique: Utilisez :: pour accéder individuellement à des variables ou des fonctions dans un espace de noms, ce qui constitue le moyen le plus sûr de l'utiliser ;

2.Extension simple : Utilisez using pour développer une variable ou une fonction seule. Après l'expansion, sa portée devient la portée globale et n'est plus limitée par l'espace de noms. Il est recommandé d'utiliser cette méthode dans des conditions courantes sans conflit.

3.Entièrement développé: Développez directement tous les espaces de noms spécifiés. Son utilisation n'est pas recommandée dans les projets. Le risque de conflit est élevé et peut être utilisé dans de petits programmes (la bibliothèque standard de la bibliothèque standard C++ est entièrement étendue, donc lorsque nous utilisons cin et cout. , Pas besoin de préfixer std ::)

2.Fonctions d'entrée et de sortie C++

En langage C, nos instructions d'entrée et de sortie sont respectivement scanf et printf. C++ est également compatible avec les instructions d'entrée et de sortie du langage C, mais il possède également ses propres fonctions d'entrée et de sortie, à savoir cin et cout.

Pour utiliser les fonctions cin et cout, vous devez inclure<iostream>Bibliothèque de flux d'entrée et de sortie standard et doit inclure la bibliothèque de fonctions standard C++

  1. #include <iostream>
  2. using namespace std;

utiliser:

Lorsque vous utilisez cin, utilisez « &gt;&gt; » pour entrer ;

Lorsque vous utilisez cout, utilisez « &lt;&lt; » pour afficher.

&lt;&lt; est l'opérateur d'insertion de flux, &gt;&gt; est l'opérateur d'extraction de flux (&lt;&lt; et &gt;&gt; représentent également les opérateurs de décalage à gauche et à droite en langage C)

  1. #include <iostream>
  2. using namespace std;
  3. int main()
  4. {
  5. int a = 0;
  6. cin >> a;
  7. cout << a << endl;
  8. printf("%dn", a);
  9. return 0;
  10. }

Nous pouvons d'abord simplement comprendre endl comme un saut de ligne 'n' ; nous n'expliquerons pas trop la partie de base et l'ajouterons dans les études futures.

Nous pouvons voir dans le code ci-dessus que cin et cout n'utilisent pas %d, %c, etc. comme scanf et printf pour contrôler le format d'entrée et de sortie des variables.cin et cout peuvent identifier automatiquement les types de variables et de données, ce qui est un endroit relativement pratique.

Dans l'environnement VS2022, le code ci-dessus ne contient pas<stdio.h> , vous pouvez également utiliser les fonctions scanf et printf, car dans VS<iostream>indirectement inclus<stdio.h>, il peut donc être utilisé directement, mais il faudra peut-être l'inclure dans d'autres environnements de compilation.<stdio.h> .

Lorsque vous souhaitez réaliser des opérations telles que la précision du contrôle, il est recommandé d'utiliser directement les méthodes d'entrée et de sortie du langage C. Il sera plus difficile d'implémenter cette opération en C++.

Il convient de noter que scanf et printf sont plus rapides que cin et cout. Dans la compétition, scanf et printf peuvent être utilisés directement en cas de temps d'exécution bloqué. Le code suivant peut améliorer l'efficacité de cin et cout, mais cet article non. explication encore.

  1. #include <iostream>
  2. using namespace std;
  3. int main()
  4. {
  5. // 在io需求⽐较⾼的地⽅,如部分⼤量输⼊的竞赛题中,加上以下3⾏代码
  6. // 可以提⾼C++IO效率
  7. ios_base::sync_with_stdio(false);
  8. cin.tie(nullptr);
  9. cout.tie(nullptr);
  10. return 0;
  11. }

3.Paramètres par défaut

Les paramètres par défaut doivent donner aux paramètres de fonction une valeur par défaut lors de la déclaration ou de la définition d'une fonction, lorsque nous appelons la fonction, si le paramètre par défaut ne transmet pas de valeur, la valeur par défaut définie sera utilisée. Si une valeur est transmise, la valeur transmise. sera utilisée.

Les paramètres par défaut sont divisés en valeurs par défaut totales et semi-par défaut ; la valeur par défaut totale signifie que tous les paramètres formels reçoivent des valeurs par défaut, et la valeur semi-par défaut signifie que certains paramètres formels reçoivent des valeurs par défaut. Et C++ stipule que les paramètres semi-par défaut doivent être définis par défaut consécutivement de droite à gauche et ne peuvent pas revenir aux valeurs par défaut à intervalles réguliers.

  1. #include <iostream>
  2. using namespace std;
  3. namespace hdmo
  4. {
  5. //全缺省
  6. int Fun1(int x = 0, int y = 0)
  7. {
  8. return x + y;
  9. }
  10. //半缺省
  11. int Fun2(int x, int y = 0)
  12. {
  13. return x + y;
  14. }
  15. }
  16. int main()
  17. {
  18. cout << hdmo::Fun1() << endl;//全缺省可以不传参
  19. cout << hdmo::Fun1(1) << endl;
  20. cout << hdmo::Fun1(1,1) << endl;
  21. /*
  22. cout << hdmo::Fun2() << endl;//半缺省不能不传参
  23. */
  24. cout << hdmo::Fun2(2) << endl;
  25. cout << hdmo::Fun2(2,2) << endl;
  26. return 0;
  27. }

Le résultat du code ci-dessus est :

Le semi-défaut doit assurer la définition et la continuité des paramètres par défaut de droite à gauche, avec les paramètres normaux à gauche et les paramètres par défaut à droite.

4. Surcharge de fonctions

La surcharge de fonctions signifie qu'il existe plusieurs fonctions avec le même nom de fonction en même temps. Le même nom de fonction représente plusieurs fonctions en même temps, ce qui constitue une surcharge.

La différence entre eux est déterminée par le type et le numéro du paramètre et n'a rien à voir avec le type de valeur de retour.Deux fonctions portant le même nom et ayant uniquement des types de valeurs de retour différents ne peuvent pas être surchargées

  1. #include <iostream>
  2. using namespace std;
  3. namespace hdmo
  4. {
  5. int Add(int x, int y)
  6. {
  7. return x + y;
  8. }
  9. double Add(double x, int y)
  10. {
  11. return x + y;
  12. }
  13. double Add(int x, double y)
  14. {
  15. return x + y;
  16. }
  17. double Add(double x, double y)
  18. {
  19. return x + y;
  20. }
  21. }
  22. int main()
  23. {
  24. using hdmo::Add;
  25. cout << Add(1, 1) << endl;
  26. cout << Add(1.1, 1) << endl;
  27. cout << Add(1, 1.1) << endl;
  28. cout << Add(1.1, 1.1) << endl;
  29. return 0;
  30. }

Le résultat est:

À partir du code ci-dessus, nous pouvons voir que l'utilisation de la surcharge peut nous permettre d'utiliser les fonctions plus facilement. En langage C, pour obtenir l'effet ci-dessus, nous devons utiliser quatre noms de fonctions différents pour définir quatre fonctions, et les utiliser différemment lorsqu'elles sont utilisées. Avec la surcharge en C++, nous pouvons unifier toutes les fonctions d'addition car il n'est pas nécessaire de distinguer un seul nom. lorsque vous l'utilisez, utilisez-le simplement directement, ce qui est très pratique.

Conclusion:

Cet article sur les bases pour démarrer avec le C++ se terminera ici. Plus tard, nous continuerons à expliquer d'autres connaissances de base. Bienvenue à tous pour continuer à venir nous donner des conseils.

Si vous rencontrez des lacunes, vous pouvez les signaler en messages privés ou dans la zone de commentaires !

Page d'accueil :Chat Pirate Ou-CSDN Blog

Voici la petite mouette ! A la prochaine fois~(*¯︶¯*)~