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 2024

Vidéo: Linux Tutorial for Beginners: Introduction to Linux Operating System 2024
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

Installation des périphériques réseau Juniper dans un rack - mannequins

Installation des périphériques réseau Juniper dans un rack - mannequins

Première étape de l'utilisation de tout périphérique réseau implique l'installation du matériel et des logiciels nécessaires à son fonctionnement. Les périphériques qui exécutent le système d'exploitation Junos varient en taille et en forme: très petits (commutateurs avec seulement quelques ports fonctionnant sur un courant de bureau normal) ou massifs (routeurs centraux multi-rack nécessitant plusieurs installateurs expérimentés ...

Comment gérer les fichiers journaux des périphériques Junos - dummies

Comment gérer les fichiers journaux des périphériques Junos - dummies

Si vous avez créé des fichiers journaux volumineux types d'événements à différents types de fichiers pour la facilité d'utilisation, vous devez gérer ces fichiers. Par défaut, le logiciel Junos OS limite la taille des fichiers journaux à 128 Ko. Lorsque les événements sont consignés, lorsque la taille totale des messages dépasse 128 Ko, quelque chose ...

Le choix des éditeurs

Adolescents gais: sortir avec la famille et les amis - les mannequins

Adolescents gais: sortir avec la famille et les amis - les mannequins

Qui révèlent l'homosexualité n'est jamais facile - pour jeunes ou vieux - mais le processus peut être particulièrement difficile pour les adolescents, qui sont dépendants de leur famille et n'ont pas encore établi leur propre vie privée avec leur propre lieu de vie et un emploi pour fournir un soutien financier. En fait, les taux de suicide ...

Comment Implanon fonctionne comme contrôle des naissances - les nuls

Comment Implanon fonctionne comme contrôle des naissances - les nuls

Certaines femmes choisissent Implanon comme contraceptif parce qu'elles veulent un contraceptif Cela ne nécessite pas de maintenance quotidienne, ni même saisonnière, ni de stérilisation. Implanon est une bonne option pour ces femmes parce que le dispositif est implanté sous la peau du bras d'une femme et est efficace pendant jusqu'à trois ans. Avec ...

Comment la grossesse change votre corps et votre vie sexuelle - les nuls

Comment la grossesse change votre corps et votre vie sexuelle - les nuls

Peuvent certainement faire partie d'une vie sexuelle saine les neuf mois de grossesse. Cela dit, ce ne sera probablement plus pareil qu'auparavant. Le corps d'une femme change au cours de cette période, tout comme ses besoins. La meilleure façon d'avoir des rapports sexuels durant la grossesse est de comprendre comment le corps d'une femme change pendant ...

Le choix des éditeurs

Utiliser une structure de répertoires peu profonds pour de meilleurs résultats de moteur de recherche - mannequins

Utiliser une structure de répertoires peu profonds pour de meilleurs résultats de moteur de recherche - mannequins

Structure de répertoire pour votre site Web, il est important de ne pas aller trop loin - cela garantit que les moteurs de recherche peuvent plus facilement votre site et que les utilisateurs trouveront votre site plus accessible. La structure du répertoire fait référence à l'emplacement physique de vos fichiers dans les dossiers du site. Par exemple, ...

Comprendre les avantages des requêtes à longue queue pour le SEO - Les nuls

Comprendre les avantages des requêtes à longue queue pour le SEO - Les nuls

Stratégie de référencement pour attirer beaucoup de monde sur votre site. Mais vous ne voulez pas seulement de la quantité - vous voulez du trafic de qualité. Vous voulez attirer des visiteurs qui viennent et restent un moment et trouvent ce qu'ils recherchent sur votre site. Ce dont vous avez vraiment besoin, ce sont les clients. Dans le monde de ...

Services de syndication traditionnels et flux RSS pour le contenu SEO - dummies

Services de syndication traditionnels et flux RSS pour le contenu SEO - dummies

Certains services de syndication vendent du contenu pour votre site web. Ce contenu est souvent envoyé à des sites Web utilisant des flux RSS. La syndication de contenu n'a rien de nouveau. Une grande partie de ce que vous lisez dans votre journal local n'est pas écrite par le personnel du journal; Cela vient d'un service de syndication. En général, ce matériel devrait être meilleur que le contenu syndiqué gratuit. Cependant, ...