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

Principes de base du protocole de routage IP Multicast - dummies

Principes de base du protocole de routage IP Multicast - dummies

IP Le routage multicast est le routage du trafic multicast. La nature des données IP Multicast est telle qu'elle a ses propres problèmes de routage de réseau Cisco. Il existe quatre protocoles de multidiffusion principaux pris en charge par le Cisco IOS actuel. L'illustration vous montre approximativement où les protocoles sont utilisés; Ce qui suit est ...

Comment le protocole STP (Spanning Tree Protocol) gère les modifications du réseau - dummies

Comment le protocole STP (Spanning Tree Protocol) gère les modifications du réseau - dummies

Nouveau concentrateur ou passer à un réseau mappé STP (Spanning Tree Protocol)? Pour cet exemple, un concentrateur était connecté à un port sur les deux commutateurs 11: 99 et 77: 22. Un concentrateur était utilisé car il ne disposait pas d'une intelligence réseau. L'effet net est en fait le même que ...

Types de réseau local (LAN) - nuls

Types de réseau local (LAN) - nuls

Un WAN est un type de réseau local (LAN) . Un réseau local est un réseau privé généralement constitué d'une connexion réseau fiable, rapide et bien connectée. Les alternatives sur le framework LAN incluent CAN, MAN et WAN. Ces trois options de réseau sont illustrées ci-dessous: CAN Si vous utilisez le réseau LAN ...

Le choix des éditeurs

Bebo est l'application de médias sociaux pour vous? - les nuls

Bebo est l'application de médias sociaux pour vous? - les nuls

Comment savez-vous quel est le bon média social pour vous? La culture moderne devient de plus en plus dépendante des médias sociaux tels que Bebo, Facebook, Twitter et What'sApp, ainsi que de nombreux autres. Le questionnaire suivant vous aidera à déterminer si vous avez ou non ce qu'il faut pour être social sur le nouveau ...

Comment utiliser Bebo - dummies

Comment utiliser Bebo - dummies

Bebo, la nouvelle application des médias sociaux, est aussi facile à utiliser que C'est amusant à regarder. Vous pouvez obtenir cette nouvelle application sur Google Play Store et Apple App Store. Lancez Bebo et suivez les instructions à l'écran pour terminer le processus de création de compte. Après avoir téléchargé avec succès, ...

Le choix des éditeurs

Ce que vous pouvez trouver dans une barre latérale de blog - des mannequins

Ce que vous pouvez trouver dans une barre latérale de blog - des mannequins

La plupart des blogs contiennent du matériel de barre latérale. La plupart des blogs sont disposés en deux ou trois colonnes, et le contenu de la barre latérale apparaît généralement dans les deuxième et / ou troisième colonnes. Certains blogs n'ont pas de barres latérales, et sur d'autres blogs, vous pouvez découvrir des éléments supplémentaires au-delà de ce que vous voyez ici. Archives basées sur la date: Presque tous les blogs sont ...

Lorsqu'un réseau publicitaire est approprié pour votre blog maman - les mannequins

Lorsqu'un réseau publicitaire est approprié pour votre blog maman - les mannequins

Ne sont que quelques-unes modèles conflit en cours d'exécution des publicités avec vos meilleurs intérêts. C'est quand vous bloguez pour vendre vos propres produits ou pour promouvoir vos services professionnels. Même dans ce cas, il est toujours possible de diffuser des annonces sur ces blogs, surtout si les annonces font la promotion de produits et de services complémentaires et non concurrents. Mais si vous êtes ...

Quand maman blogue pour Swag is Okay - les mannequins

Quand maman blogue pour Swag is Okay - les mannequins

Dans certaines circonstances légitimes vous pouvez vous sentir travailler gratuitement vaut votre temps et la publicité que vous offrez à une marque. Cela peut être comparé à un stage non rémunéré. Si vous êtes stagiaire et que vous avez une excellente expérience de travail, alors c'est une entreprise précieuse. Si vous êtes stagiaire et que vous ne versez que du café et que vous livrez ...