Accueil Finances personnelles C ++ Concept de classe abstrait - dummies

C ++ Concept de classe abstrait - dummies

Vidéo: Virtual Functions & Abstract Classes in C++ | C++ Programming Tutorials 2024

Vidéo: Virtual Functions & Abstract Classes in C++ | C++ Programming Tutorials 2024
Anonim

Une classe abstraite en C ++ est une classe avec une ou plusieurs fonctions virtuelles pures. Une fonction virtuelle pure est une fonction membre virtuelle marquée comme n'ayant aucune implémentation. Très probablement, il n'a pas d'implémentation car aucune implémentation n'est possible avec les informations fournies dans la classe, y compris les classes de base.

Une fonction virtuelle non pure conventionnelle et banale est appelée fonction concrète (notez qu'une fonction concrète peut être virtuelle - malheureusement, C ++ utilise ce terme pour désigner polymorphique.

La syntaxe pour déclarer une fonction pure virtual est démontrée dans la classe suivante: Account

// Account - cette classe est une classe de classe abstraite Account {public: Compte (non signé accNo, double initialBalance = 0. 0); // fonctions d'accès unsigned int compteNo (); double acntBalance (); static int noAccounts (); // fonctions de transaction void deposit (double montant); // les éléments suivants est une fonction virtuelle pure retrait de vide virtuel (double montant) = 0; protected: // garde les comptes dans une liste chaînée donc il n'y a pas de limite // au nombre de comptes static int count; // nombre de comptes unsigned accountNumber;;};

Le = 0 après la déclaration de retrait () indique que le programmeur n'a pas l'intention de définir cette fonction. on est un espace réservé pour les sous-classes. Les sous-classes de Account devraient remplacer cette fonction par une fonction concrète. Le programmeur doit fournir une implémentation pour chaque fonction membre non déclarée virtuelle pure.

Certains programmeurs pensent que cette notation est stupide. Mais il est là pour rester, alors il faut juste apprendre à vivre avec. Il y a une raison, sinon une justification, pour cette notation. Chaque fonction virtuelle doit avoir une entrée dans une table spéciale.

Cette entrée contient l'adresse de la fonction. Vraisemblablement, au moins à un moment, l'entrée pour une fonction virtuelle pure était 0. Dans tous les cas, c'est la syntaxe avec laquelle vous êtes coincé maintenant.

Une classe abstraite ne peut pas être instanciée avec un objet; c'est-à-dire que vous ne pouvez pas faire un objet hors d'une classe abstraite. Par exemple, la déclaration suivante n'est pas légale:

void fn () {// déclare un compte avec 100 dollars Account acnt (1234, 100. 00); // ce n'est pas légal acnt. retrait (50); // qu'attendriez-vous} // cet appel à faire?

Si la déclaration était autorisée, l'objet résultant serait incomplet et manquerait de certaines capacités. Par exemple, que devrait faire l'appel précédent? Rappelez-vous, il n'y a pas de compte:: retrait () .

Les classes abstraites servent de classes de base pour les autres classes. Un compte contient toutes les propriétés associées à un compte bancaire générique. Vous pouvez créer d'autres types de comptes bancaires en héritant du compte .

Le terme technique est instancier . Vous dites que la classe Account ne peut pas être instanciée avec un objet ou qu'un objet donné instancie la classe Savings .

C ++ Concept de classe abstrait - dummies

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, ...