Vous manquez des opportunités de trading :
- Applications de trading gratuites
- Plus de 8 000 signaux à copier
- Actualités économiques pour explorer les marchés financiers
Inscription
Se connecter
Vous acceptez la politique du site Web et les conditions d'utilisation
Si vous n'avez pas de compte, veuillez vous inscrire
les noms des paramètres ne sont pas importants... des noms différents ont un sens afin que quelque chose ne soit pas confondu avec quelque chose...
Vous pouvez écrire certaines valeurs dans la déclaration de la fonction,
et d'autres valeurs dans la fonction elle-même
ou vous pouvez nommer les paramètres de manière identique partout, selon ce qui est le plus pratique pour l'auteur du code.
Dans le même manuel, le code est apparu :
Une chose étrange à propos du constructeur :
Pourquoi y a-t-il un opérateur de retour ici ?C'est la première fois que je vois cet opérateur utilisé dans le constructeur. En fait, le constructeur est appelé automatiquement. Et il y aura une sortie de toute façon. Cet opérateur a-t-il un sens dans le constructeur ?
Dans le même manuel, le code est apparu :
Une chose étrange à propos du constructeur :
Pourquoi y a-t-il un opérateur de retour ici ?C'est la première fois que je vois cet opérateur utilisé dans le constructeur. En fait, le constructeur est appelé automatiquement. Et il y aura une sortie de toute façon. Cet opérateur a-t-il un sens dans le constructeur ?
Elle n'est pas nécessaire dans cet exemple, mais il peut y avoir une initialisation complexe lorsque la sortie anticipée est nécessaire.
Le constructeur et le destructeur sont des fonctions normales. Seuls le constructeur et le destructeur par défaut sont appelés automatiquement. Les autres sont appelés par l'utilisateur.
Le manuel donne cet exemple en relation avec le polymorphisme :
Il y a une chose que je ne comprends pas. Si nous utilisons des objets de fonction enfant pour les appels, c'est-à-dire les méthodes dérivées CCircle et CSquare, alors la zone GetArea() peut être calculée en contournant les déclarations de la classe de base. C'est-à-dire ne pas créer du tout de fonctions virtuelles dans une classe de base, et dans les méthodes dérivées créer une simple méthode et c'est tout ! Alors pourquoi avons-nous besoin d'une fonction virtuelle ?
Il est intéressant de voir un exemple adéquat et logique, où l'on peut constater que les fonctions virtuelles apportent un certain avantage. Parce que ce que j'ai vu n'était pas logique, du moins pour moi. J'aimerais tout de même le comprendre.
Le manuel donne cet exemple en relation avec le polymorphisme :
Il y a une chose que je ne comprends pas. Si nous utilisons des objets de fonction enfant pour les appels, c'est-à-dire les méthodes dérivées CCircle et CSquare, alors la zone GetArea() peut être calculée en contournant les déclarations de la classe de base. C'est-à-dire ne pas créer du tout de fonctions virtuelles dans une classe de base, et dans les méthodes dérivées créer une simple méthode et c'est tout ! Alors pourquoi avons-nous besoin d'une fonction virtuelle ?
Il est intéressant de voir un exemple adéquat et logique, où l'on peut constater que les fonctions virtuelles apportent un certain avantage. Parce que ce que j'ai vu n'était pas logique, du moins pour moi. J'aimerais tout de même le comprendre.
Il s'agit de l'exemple le plus simple pour comprendre le polymorphisme. Pour l'obtenir rapidement.
Il y a des cas compliqués. Vous l'appliquerez quand vous en aurez besoin. Il n'y a pas de raison de s'embêter maintenant. Une fois la tâche accomplie, vous devrez y réfléchir.
Par exemple, j'ai une classe de base avec toutes les interfaces de lecture/écriture possibles. Elle possède également des méthodes virtuelles privées (2 au total - lecture/écriture), qui relient cette interface dans la classe de base avec les classes dérivées. En fait, les classes dérivées peuvent être n'importe où où l'on travaille avec des fichiers (fichiers, cartographie, canaux, internet). Chacune des classes dérivées définit ces méthodes virtuelles différemment, mais toutes les classes ont la même interface que la classe de base.
Le manuel donne cet exemple en relation avec le polymorphisme :
Il y a une chose que je ne comprends pas. Si nous utilisons des objets de fonction enfant pour les appels, c'est-à-dire les méthodes dérivées CCircle et CSquare, alors la zone GetArea() peut être calculée en contournant les déclarations de la classe de base. C'est-à-dire ne pas créer du tout de fonctions virtuelles dans une classe de base, et dans les méthodes dérivées créer une simple méthode et c'est tout ! Alors pourquoi avons-nous besoin d'une fonction virtuelle ?
Il est intéressant de voir un exemple adéquat et logique, où l'on peut constater que les fonctions virtuelles apportent un certain avantage. Parce que ce que j'ai vu n'était pas logique, du moins pour moi. Je veux tout de même le comprendre.
Je vais essayer d'esquisser un petit échantillon :
Grâce à cette structure, nous n'aurons pas besoin d'entrer dans l'algorithme de travail, qui peut être très grand et complexe (tout est simplifié ici), nous aurons seulement besoin d'ajouter un descendant de plus, m3 dans l'énumération et un cas de plus dans le switch. C'est-à-dire que nous avons unifié les données d'entrée, ce qui évitera les modifications dans la partie principale du programme.
Bien entendu, cela ne sera approprié que si l'algorithme de travail accepte une variété de types en entrée. S'il n'y a qu'un seul type, tout cela est inutile.
Le manuel donne cet exemple en relation avec le polymorphisme :
Il y a une chose que je ne comprends pas. Si nous utilisons des objets de fonction enfant pour les appels, c'est-à-dire les méthodes dérivées CCircle et CSquare, alors la zone GetArea() peut être calculée en contournant les déclarations de la classe de base. C'est-à-dire ne pas créer du tout de fonctions virtuelles dans une classe de base, et dans les méthodes dérivées créer une simple méthode et c'est tout ! Alors pourquoi avons-nous besoin d'une fonction virtuelle ?
Il est intéressant de voir un exemple adéquat et logique, où l'on peut constater que les fonctions virtuelles apportent un certain avantage. Parce que ce que j'ai vu n'était pas logique, du moins pour moi. J'aimerais tout de même le comprendre.
Voici un exemple simple :
Nous utilisons la fonction GetArea() sans savoir pour quelle forme elle est appelée.J'ai ce setter dans une classe :
Le compilateur combat généralement cette affectation d'éléments au tableau ColorBySend comme ceci :
Qu'est-ce que ça a à voir ? Est-il vraiment nécessaire d'attribuer des valeurs élément par élément ? N'est-il pas possible de le faire sous forme de liste ? A quoi est-il lié ? Après tout, c'est comme ça que le devoir fonctionne, même dans le manuel...J'ai ce setter dans une classe :
Le compilateur jure par cette affectation d'éléments au tableau ColorBySend en général comme ceci :
Qu'est-ce que ça a à voir ? Est-il vraiment nécessaire d'attribuer des valeurs élément par élément ? N'est-il pas possible de le faire sous forme de liste ? Qu'est-ce que ça a à voir avec ça ? Après tout, c'est comme ça que les devoirs sont faits, même dans le manuel...est une expression variable que le compilateur ne peut pas comprendre. Hélas.