Cet article fournit aux développeurs familiers avec le langage C avec des points clés pour démarrer rapidement avec C. 1. Classes et objets: La classe de C est une mise à niveau de la structure C, prend en charge les données et les méthodes d'encapsulation et présente les caractères de contr?le d'accès privés et publics. 2. Constructeur et destructeur: implémentez l'initialisation automatique des objets et la libération de ressources. Le constructeur n'a pas de type de retour. Il est recommandé d'utiliser une liste d'initialisation. 3. STL: La bibliothèque de modèles standard fournit des conteneurs efficaces tels que Vector, MAP et SET, simplifiant les opérations de structure de données communes. 4. Espace de noms et entrée et sortie: utilisez CIN / COUT au lieu de ScanF / Printf pour éviter les conflits de nom via l'espace de noms. La ma?trise de ces contenus de base peut créer des programmes C pratiques.
Si vous connaissez déjà le langage C et que vous souhaitez commencer avec C rapidement, cet article se concentrera directement sur les points clés. C n'est pas une nouvelle langue complètement indépendante. Il s'est développé sur la base de C, vous avez donc déjà un bon point de départ. Cependant, C a introduit de nombreux nouveaux concepts et mécanismes, tels que des classes, des objets, des modèles, des STL, etc., qui vous obligent à vous adapter progressivement.

Ce qui suit commence à partir de plusieurs points clés pour vous aider à convertir les bases de C en possibilité d'écrire le code C.

Classe et objet: version mise à niveau de la structure C
En C, nous utilisons struct
pour organiser les données. En C, class
est une version améliorée de struct
. En plus d'encapsulation des données, il peut également inclure des fonctions (méthodes).
classe rectangle { privé: Largeur int, hauteur; publique: void set (int w, int h) { largeur = w; hauteur = h; } Int Area () { Largeur de retour * Hauteur; } };
Vous pouvez utiliser cette classe comme ceci:

Rectangle r; R.Set (3, 4); cout << r.area (); // Sortie 12
Quelques points à noter:
- Les caractères
private
etpublic
sont des caractères de contr?le d'accès qui peuvent protéger les données internes contre la modification par arbitraire externe. - C permet de définir les fonctions dans les classes, ce qui ne peut pas être fait dans C.
- L'autorisation d'accès par défaut de la classe est
private
, tandis que l'autorisation d'accès par défaut destruct
estpublic
, ce qui fait une différence entre les deux.
Constructeurs et destructeurs: initialisation et nettoyage exécutés automatiquement
En C, l'initialisation d'une structure nécessite généralement un appel manuellement une fonction, comme init_rect()
. C fournit des constructeurs qui vous permettent de terminer automatiquement l'initialisation lors de la création d'objets.
classe rectangle { publique: Rectangle (int w, int h): largeur (w), hauteur (h) { cout << "initialisé"; } ~ Rectangle () { cout << "détruit"; } privé: Largeur int, hauteur; };
- Le constructeur n'a pas de type de retour et le nom est le même que le nom de classe.
- L'utilisation de listes d'initialisation (
: width(w), height(h)
) est plus efficace et est recommandée. - Le destructeur est utilisé pour libérer des ressources et est automatiquement appelé à la fin du cycle de vie de l'objet.
STL: bibliothèque de modèles standard, facilitant le fonctionnement des conteneurs
Les programmeurs C implémentent souvent eux-mêmes des listes, des files d'attente et d'autres structures. La bibliothèque standard C fournit des classes de conteneurs puissantes, telles que vector
, map
, set
, etc., qui sont non seulement efficaces, mais réduisent également la possibilité d'erreurs.
Par exemple, utilisez vector
au lieu de tableaux dynamiques:
#include <Vector> Utilisation de Namespace Std; VECTOR <int> num; nums.push_back (10); // Ajouter un élément pour (int n: nums) { cout << n << endl; }
Les conteneurs communs sont:
-
vector
: tableau dynamique, adapté à l'accès séquentiel -
map
: stockage de paires de valeurs clés, adaptée à la recherche -
set
: collection triée automatiquement pour éviter la duplication
suggestion:
- Familier avec les itérateurs et la gamme basés sur les boucles
- Utilisez des bibliothèques d'algorithmes (telles que
sort
,find
) au lieu d'écrire vous-même des boucles
Espace de noms et entrée et sortie: dites au revoir à printf et embrasser iOStream
C a ses propres méthodes d'entrée et de sortie, telles que cin
et cout
, qui sont plus s?res et plus faciles à évoluer que scanf
et printf
.
#include <iostream> Utilisation de Namespace Std; cout << "Bonjour, monde!" << endl; int x; cin >> x;
De plus, l'espace de noms peut vous aider à organiser votre code et à éviter les conflits de nom:
Namespace Math { int add (int a, int b) { retour AB; } } Math :: Add (2, 3); // Méthode d'appel
Fondamentalement, c'est tout. C a de nombreuses fonctionnalités avancées, telles que des modèles, l'héritage, le polymorphisme, les pointeurs intelligents, etc., mais si vous avez déjà la base de C, vous pouvez d'abord ma?triser le contenu ci-dessus et écrire un programme C pratique. Il n'est pas nécessaire de poursuivre la session plénière depuis le début, et il vaut mieux apprendre lors de l'écriture.
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!

Outils d'IA chauds

Undress AI Tool
Images de déshabillage gratuites

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
échangez les visages dans n'importe quelle vidéo sans effort grace à notre outil d'échange de visage AI entièrement gratuit?!

Article chaud

Outils chauds

Bloc-notes++7.3.1
éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

STD :: Chrono est utilisé en C pour traiter le temps, y compris l'obtention de l'heure actuelle, la mesure du temps d'exécution, le point de fonctionnement et la durée de l'opération et le temps d'analyse de formatage. 1. Utilisez STD :: Chrono :: System_clock :: Now () pour obtenir l'heure actuelle, qui peut être convertie en une cha?ne lisible, mais l'horloge système peut ne pas être monotone; 2. Utilisez STD :: Chrono :: standard_clock pour mesurer le temps d'exécution pour assurer la monotonie, et la convertir en millisecondes, secondes et autres unités via durée_cast; 3. Point de temps (temps_point) et durée (durée) peut être interopérable, mais l'attention doit être accordée à la compatibilité des unités et à l'époque de l'horloge (époque)

En C, le type POD (PlainoldData) fait référence à un type avec une structure simple et compatible avec le traitement des données du langage C. Il doit remplir deux conditions: il a une sémantique de copie ordinaire, qui peut être copiée par MEMCPY; Il a une disposition standard et la structure de la mémoire est prévisible. Les exigences spécifiques incluent: tous les membres non statiques sont publics, pas de constructeurs ou de destructeurs définis par l'utilisateur, pas de fonctions virtuelles ou de classes de base, et tous les membres non statiques eux-mêmes sont des pods. Par exemple, structPoint {intx; Inty;} est pod. Ses utilisations incluent les E / S binaires, l'interopérabilité C, l'optimisation des performances, etc. Vous pouvez vérifier si le type est POD via STD :: IS_POD, mais il est recommandé d'utiliser STD :: IS_TRIVIA après C 11.

Anullpointerinc isasaspecialvalueINDICATINGSTATAPOInterDoOesNotPointToanyValidMemoryLocation, andisesesedTosafelyManageAndcheckpointersBeforedereencing.1.BeForec 11,0orlwasused, butnownullptrisprefort

Pour appeler le code Python en C, vous devez d'abord initialiser l'interprète, puis vous pouvez réaliser l'interaction en exécutant des cha?nes, des fichiers ou en appelant des fonctions spécifiques. 1. Initialisez l'interpréteur avec py_initialize () et fermez-le avec py_finalalize (); 2. Exécuter le code de cha?ne ou pyrun_simplefile avec pyrun_simplefile; 3. Importez des modules via pyimport_importmodule, obtenez la fonction via pyObject_getattrstring, construisez des paramètres de py_buildvalue, appelez la fonction et le retour de processus

En C, il existe trois fa?ons principales de passer les fonctions comme paramètres: en utilisant des pointeurs de fonction, des expressions de fonction STD :: et de lambda et des génériques de modèle. 1. Les pointeurs de fonction sont la méthode la plus élémentaire, adaptée à des scénarios simples ou à une interface C compatible, mais une mauvaise lisibilité; 2. STD :: Fonction combinée avec les expressions de lambda est une méthode recommandée dans le C moderne, soutenant une variété d'objets appelées et étant de type type; 3. Template Les méthodes génériques sont les plus flexibles, adaptées au code de la bibliothèque ou à la logique générale, mais peuvent augmenter le temps de compilation et le volume de code. Les lambdas qui capturent le contexte doivent être passés à travers la fonction STD :: ou le modèle et ne peuvent pas être convertis directement en pointeurs de fonction.

La clé d'une classe abstraite est qu'elle contient au moins une fonction virtuelle pure. Lorsqu'une fonction virtuelle pure est déclarée dans la classe (comme VirtualVoidDoSomething () = 0;), la classe devient une classe abstraite et ne peut pas instancier directement l'objet, mais le polymorphisme peut être réalisé par des pointeurs ou des références; Si la classe dérivée n'implémente pas toutes les fonctions virtuelles pures, elle restera également une classe abstraite. Les classes abstraites sont souvent utilisées pour définir des interfaces ou des comportements partagés, tels que la conception de classes de forme dans des applications de dessin et la mise en ?uvre de la méthode Draw () par des classes dérivées telles que le cercle et le rectangle. Les scénarios utilisant des classes abstraits comprennent: la conception de classes de base qui ne devraient pas être instanciées directement, for?ant plusieurs classes connexes à suivre une interface unifiée, en fournissant un comportement par défaut et en nécessitant des sous-classes pour compléter les détails. De plus, C

Il existe trois moyens efficaces de générer des UUID ou des guides en C: 1. Utilisez la bibliothèque Boost, qui fournit une prise en charge multi-version et est simple à interface; 2. Générer manuellement la version4uuides adaptée aux besoins simples; 3. Utilisez des API spécifiques à la plate-forme (telles que Windows 'CoCreateGuid), sans dépendances tierces. Boost convient à la plupart des projets modernes, la mise en ?uvre manuelle convient aux scénarios légers et API Platform convient aux environnements d'entreprise.

En C, le mot-clé mutable est utilisé pour permettre à l'objet d'être modifié, même si l'objet est déclaré const. Son objectif principal est de maintenir les constantes logiques de l'objet tout en permettant des changements d'état interne, qui se trouvent couramment dans les primitives de cache, de débogage et de synchronisation des threads. Lorsque vous l'utilisez, mutable doit être placé devant le membre de données dans la définition de la classe, et il ne s'applique qu'aux membres de données plut?t qu'aux variables globales ou locales. Dans les meilleures pratiques, les abus doivent être évités, la synchronisation simultanée doit être prêtée attention et un comportement externe doit être assuré. Par exemple, Std :: Shared_PTR utilise mutable pour gérer le comptage de référence pour réaliser la sécurité des filetages et l'exactitude constante.
