Accueil Finances personnelles 8 Caractéristiques de C ++ Not-So-Beginner - mannequins

8 Caractéristiques de C ++ Not-So-Beginner - mannequins

Table des matières:

Vidéo: Linux Tutorial for Beginners: Introduction to Linux Operating System 2025

Vidéo: Linux Tutorial for Beginners: Introduction to Linux Operating System 2025
Anonim

Le langage C ++ contient tellement de fonctionnalités que les programmeurs débutants ne peuvent pas tous comprendre. Heureusement, vous n'avez pas besoin de maîtriser toutes les fonctionnalités de la langue pour écrire de grands programmes dans le monde réel. Vous trouverez ci-dessous dix caractéristiques que vous voudrez peut-être anticiper, au cas où vous les verriez dans les programmes d'autres personnes.

La commande C ++ goto

Cette commande retourne à C, l'ancêtre de C ++. En principe, utiliser cette commande est facile. Vous pouvez placer goto label; où tu veux. Lorsque C ++ rencontre cette commande, le contrôle passe immédiatement à l'étiquette, comme démontré dans cet extrait de code:

for (;;) {if (expression conditionnelle) {goto outahere;} // … tout ce que vous voulez …} outahere: // … le programme continue ici …

En pratique, cependant, goto introduit beaucoup de façons de bousiller. Dans tous les cas, les programmeurs ont rapidement remarqué que les deux utilisations les plus courantes du goto consistaient à quitter les boucles et à passer au cas suivant dans une boucle. Le Comité des normes C introduit la pause et continue et a presque complètement enlevé le besoin de la commande goto.

L'opérateur ternaire C ++

L'opérateur ternaire est un opérateur unique en C et C ++. Cela fonctionne comme suit:

int n = (conditionnel)? expression1: expression2;

Le? l'opérateur évalue d'abord le conditionnel. Si la condition est vraie, alors la valeur de l'expression est égale à la valeur de expression1; sinon, il est égal à la valeur de expression2.

Par exemple, vous pouvez implémenter une fonction maximum () comme suit:

int max (int n1, int n2) {return (n1> n2)? n1: n2;}

L'opérateur ternaire peut être appliqué à n'importe quel type de numérique mais ne peut pas être surchargé. L'opérateur ternaire est vraiment une expression - pas une instruction de contrôle comme un si.

Types énumérés en C ++

L'idée simple est que vous pouvez définir des constantes et laisser C ++ leur assigner des valeurs, comme indiqué ici:

enum Colors {NOIR, BLEU, VERT, JAUNE, ROUGE}; Couleurs myColor = BLACK;

Le problème avec les types énumérés réside dans l'implémentation: Plutôt que de créer un vrai type, C ++ utilise des entiers. Dans ce cas, BLACK reçoit la valeur 0, BLUE 1, GREEN2 et ainsi de suite.

La bibliothèque standard pour C ++ 2011 a "résolu" ce problème en créant un type de classe énuméré comme indiqué dans l'extrait suivant:

enum class Colors {BLACK, BLUE, GREEN, YELLOW, RED}; Couleurs myColor = Couleurs:: BLACK;

Dans cette version, Colors est un nouveau type.Chacune des constantes, NOIR, BLEU et ainsi de suite, sont membres du type Couleurs. Vous pouvez toujours convertir un objet de la classe Colors en int, mais une distribution implicite n'est pas autorisée.

namespaces C ++

Il est possible de donner le même nom à différentes entités dans deux bibliothèques différentes. Par exemple, la fonction grade () dans la bibliothèque Student affecte probablement une note, tandis que la fonction grade () dans la bibliothèque CivilEngineering peut définir la pente sur le côté d'une colline. Pour éviter ce problème, C ++ permet au programmeur de placer son code dans un espace de noms distinct. Ainsi, la note dans l'espace de noms Student est différente de la note dans CivilEngineering.

L'espace de noms est au-dessus et au-delà du nom de la classe. La fonction membre grade () de la classe BullDozer dans l'espace de noms CivilEngineering a le nom étendu CivilEngineering:: BullDozer:: grade ().

Tous les objets et fonctions de la bibliothèque se trouvent dans l'espace de noms std. L'instruction au début du modèle de programme utilisant namespace std; dit que si vous ne voyez pas l'objet spécifié dans l'espace de nom par défaut, alors allez dans std.

Fonctions virtuelles pures en C ++

Il n'est pas nécessaire de définir une fonction déclarée virtuelle. Une telle fonction indéfinie est connue sous le nom de fonction de membre virtuel pur . À ce stade, cependant, les choses se compliquent. Par exemple, une classe avec une ou plusieurs fonctions virtuelles pures est dite abstraite et ne peut pas être utilisée pour créer un objet. Aborder ce sujet après vous sentir à l'aise avec les fonctions virtuelles et la liaison tardive.

La classe de chaînes C ++

La plupart des langues incluent une classe de chaînes en tant que type intrinsèque pour la gestion facile des chaînes de caractères. En théorie, la classe de chaîne devrait faire la même chose pour C ++. En pratique, cependant, ce n'est pas si simple. Dans la mesure où la chaîne n'est pas un type intrinsèque, les messages d'erreur générés par le compilateur en cas de problème sont plus proches de ceux associés aux classes définies par l'utilisateur. Pour un débutant, ces messages peuvent être très difficiles à interpréter.

chaîne n'est même pas une classe. C'est une instance d'une classe de template. Les messages d'erreur peuvent être à couper le souffle.

Héritage multiple en C ++

Une classe peut réellement étendre plus d'une classe de base. Cela semble simple mais peut devenir assez compliqué lorsque les deux classes de base contiennent des fonctions membres du même nom. Pire encore, lorsque les deux classes de base sont elles-mêmes des sous-classes d'une classe commune.

En fait, il y a tellement de problèmes que C ++ est le seul langage de type C qui supporte l'héritage multiple. Java et C #, les deux langages dérivés de C ++, ont décidé d'abandonner le support pour l'héritage multiple.

Modèles C ++ et bibliothèque de templates standard

Les créateurs de C ++ ont remarqué que les fonctions similaires à:

int max (int n1, int n2) {if (n1> n2) {return n1;} return n2;} double max (double n1, double n2) {if (n1> n2) {return n1;} renvoie n2;} char max (char n1, char n2) {if (n1> n2) {return n1;} return n2;}

"Ne serait-ce pas cool", dit-on à l'autre, "si vous pouviez remplacer le type par un pseudo-type T que vous pourriez définir au moment de la compilation?"Avant que vous ne le sachiez, les presto-templates deviennent une partie du template C ++:

T max (T t1, T t2) {if (t1> t2) {return t1;} renvoie t2;}

Maintenant le programmeur peut Créez un max (int, int) en remplaçant T par int et en compilant le résultat, créez un max (double, double) en remplaçant T par double, et ainsi de suite. Le comité des normes a même publié une bibliothèque entière de classes, connue sous le nom de bibliothèque de modèles standard (STL), basée sur des classes modèles.

Pour un débutant, cependant, le sujet des classes modèles commence à être syntaxiquement très compliqué. En outre, les erreurs que le compilateur génère lorsque vous obtenez une mauvaise instanciation de modèle sont déroutantes pour un expert, sans parler d'un débutant. C'est certainement un sujet qui doit attendre jusqu'à ce que vous vous sentiez à l'aise avec la langue de base.

8 Caractéristiques de C ++ Not-So-Beginner - mannequins

Le choix des éditeurs

Pour les seniors: Comment travailler avec Windows dans Microsoft Windows - les nuls

Pour les seniors: Comment travailler avec Windows dans Microsoft Windows - les nuls

Windows, avec un W majuscule, tire son nom de sa caractéristique principale: Windows, avec un w minuscule. Se familiariser avec Windows signifie apprendre à ouvrir, fermer, redimensionner, déplacer et basculer entre les fenêtres, ce qui est la clé pour jongler avec succès avec plusieurs activités. Chaque programme que vous exécutez occupe sa propre fenêtre. Une fenêtre peut occuper une partie de ...

Comment accepter ou rejeter les cookies dans Safari - dummies

Comment accepter ou rejeter les cookies dans Safari - dummies

Un cookie est un petit fichier qu'un site Web enregistre automatiquement sur le disque dur de votre Mac. Il contient des informations, telles que vos préférences ou votre date de naissance, que le site utilisera lors de vos prochaines visites. Dans Mac OS X Snow Leopard, Safari vous permet de choisir d'accepter ou non tous les cookies ...

Le choix des éditeurs

Construire des boîtes et des lignes Bézier dans QuarkXPress - des nuls

Construire des boîtes et des lignes Bézier dans QuarkXPress - des nuls

Pour créer une boîte ou une ligne dans QuarkXPress plus complexe qu'un simple rectangle, ovale ou starburst, vous entrez dans le domaine du chemin de Bézier. Si vous avez utilisé l'outil Plume dans Adobe Illustrator ou Photoshop, vous comprenez déjà les chemins de Bézier. Il faut un peu de pratique et un esprit détendu ...

Création d'un rapport avec Crystal Reports 10 - témoins

Création d'un rapport avec Crystal Reports 10 - témoins

Lorsque vous démarrez Crystal Reports 10, généralement l'une des trois choses suivantes: créer un rapport, modifier un rapport ou exécuter un rapport sur les données de votre base de données. Les rapports prennent des données à partir d'une base de données, les traitent, les formatent et les affichent ensuite sur une imprimante, un écran d'ordinateur ou un site Web. Crystal Reports ...

Traitant des commentaires Javadoc dans Eclipse - mannequins

Traitant des commentaires Javadoc dans Eclipse - mannequins

Lorsque vous utilisez Eclipse pour écrire du code Java, n'oubliez pas de éditez les commentaires de Javadoc (les choses qui commencent par / **). Vous pouvez ajouter des informations utiles lorsque vous modifiez les commentaires Javadoc et lorsque vous les modifiez, l'aide au code d'Eclipse propose des suggestions. N'oubliez pas ces astuces lorsque vous modifiez vos commentaires Javadoc: Ajouter un commentaire Javadoc: ...

Le choix des éditeurs

Les connexions cachées sur le Nikon D5600 - les nuls

Les connexions cachées sur le Nikon D5600 - les nuls

Ouvrent les couvercles sur les côtés gauche et droit du Nikon D5600 caméra, et vous verrez plusieurs ports de connexions cachées. Les ports de connexion suivants sont indiqués sur cette image: Terminal d'accessoires: ce terminal accepte les accessoires suivants: câble déclencheur à distance Nikon MC-DC2; Télécommandes sans fil WR-1 et WR-R10; et les unités GPS GP-1 / GP-1A. I ...

Les connexions cachées sur votre Nikon D5200 - les nuls

Les connexions cachées sur votre Nikon D5200 - les nuls

ÉParpillés sur l'extérieur de votre appareil photo sont nombreuses commandes que vous utilisez pour changer d'image -prend des paramètres, revoir et modifier vos photos, et effectuer diverses autres opérations. Caché sous le couvercle sur le côté gauche de la caméra, vous trouverez les quatre ports de connexion suivants, étiquetés dans cette figure: Borne accessoire: Vous pouvez brancher le Nikon en option ...

Des boutons et autres commandes du Nikon D7500 - mannequins

Des boutons et autres commandes du Nikon D7500 - mannequins

C'est génial d'avoir une carte pour le boutons et commandes sur votre appareil photo, mais ce n'est pas beaucoup d'aide si vous ne pouvez pas vous rappeler quel bouton appuyer sur quand (et pourquoi). Alors, voici un aperçu des fonctions des contrôles les plus importants. (Certains contrôles ont des fonctions supplémentaires pendant certaines opérations, mais la table ...