Aide c++ (débutant Class)
Supprimé- 1
Dans la première capture j'ai une class mère (option)
Dans la seconde capture j'ai une class fille (option européen)
Comme dans un tuto suivit j'ai appelé le constructeur de la classe mère a partir de la classe fille. Au final j'ai bien accès aux méthodes de la classe mère mais pas aux attributs apparemment, puisque dans la méthode "afficher" je n'ai pas accès à l'ensemble de mes variables (période, sous jacent, strike, etc..) si quelqu'un pourrait m'aider ça serait vraiment cool !!
Le 10 novembre 2022 à 21:55:36 :
tes attributs sont privés, si tu veux y accéder via la classe fille, tu dois changer leur visibilité ou faire des getter et setter.
A okay, dans le petit tuto il disait que l'héritage permet d'avoir accès aux méthodes ET attribut de la classe mère. Je dois mettre mes getter/setter dans quelle classe ?
Le 10 novembre 2022 à 21:58:06 huzuni35 a écrit :
Le 10 novembre 2022 à 21:55:36 :
tes attributs sont privés, si tu veux y accéder via la classe fille, tu dois changer leur visibilité ou faire des getter et setter.A okay, dans le petit tuto il disait que l'héritage permet d'avoir accès aux méthodes ET attribut de la classe mère.
seulement ceux qui sont public
ou protected
Je dois mettre mes getter/setter dans quelle classe ?
la classe qui possède les attributs (mère)
Le 11 novembre 2022 à 09:27:30 :
Le 10 novembre 2022 à 21:58:06 huzuni35 a écrit :
Le 10 novembre 2022 à 21:55:36 :
tes attributs sont privés, si tu veux y accéder via la classe fille, tu dois changer leur visibilité ou faire des getter et setter.A okay, dans le petit tuto il disait que l'héritage permet d'avoir accès aux méthodes ET attribut de la classe mère.
seulement ceux qui sont
public
ouprotected
Je dois mettre mes getter/setter dans quelle classe ?
la classe qui possède les attributs (mère)
Merci j'ai fait le choix de les mettres en protected, je n'ai pas encore bien compris ce que ça implique mais ça fonctionne alors c'est déjà ça ! :D Merci
je t'invite a lire la documentation sur le mot cle PROTECTED qui permet de faire heriter tout en encapsulant la donne pour ne pas qu'elle soit public
déja logiquement, en utilisant le pattern builder, pour acceder à un attribut, faut passer par un getter/setter
(c'est simple, un getter c'est une fonction qui retourne l'attribut, un setter c'est une fonction qui change la valeur de l'attribut)
ensuite, je ne fais pas de c++ mais ne faudrait il pas lui dire un truc du genre this.Periode ?
(attention au convention de nommage aussi, un variable ne doit pas commencer par une majuscule)
Le 11 novembre 2022 à 12:44:14 :
Le 11 novembre 2022 à 09:27:30 :
Le 10 novembre 2022 à 21:58:06 huzuni35 a écrit :
Le 10 novembre 2022 à 21:55:36 :
tes attributs sont privés, si tu veux y accéder via la classe fille, tu dois changer leur visibilité ou faire des getter et setter.A okay, dans le petit tuto il disait que l'héritage permet d'avoir accès aux méthodes ET attribut de la classe mère.
seulement ceux qui sont
public
ouprotected
Je dois mettre mes getter/setter dans quelle classe ?
la classe qui possède les attributs (mère)
Merci j'ai fait le choix de les mettres en protected, je n'ai pas encore bien compris ce que ça implique mais ça fonctionne alors c'est déjà ça ! :D Merci
on appelle ça une portée. Pour savoir qui a le droit
public : tout le monde = pas safe du tout
protected : la classe et ses héritiers si ma mémoire est bonne
private : juste la classe
Le protected mot clé spécifie l’accès aux membres de la classe dans la liste des membres jusqu’au spécificateur d’accès suivant (public ou ) ou privateà la fin de la définition de classe. Les membres de classe déclarés comme protected pouvant être utilisés uniquement par les éléments suivants :
Les fonctions membres de la classe qui a initialement déclaré ces membres.
Les friends de la classe qui a initialement déclaré ces membres.
Les classes dérivées ayant un accès public ou protégé à partir de la classe qui a initialement déclaré ces membres.
Les classes directes dérivées de manière privée qui ont également un accès privé aux membres protégés.
ainsi si tu declares l'heritage public, comme tu l'as fait :
Class OptionEurope : Public Option
tu as acces a toutes les data protected encapsules.
Le 11 novembre 2022 à 12:57:53 :
Le 11 novembre 2022 à 12:46:24 Link-Enfant a écrit :
pourquoi le C++ nonobstant ? Et pas le RUST ?C++ est largement plus utilisé que Rust, et continuera de l'être pendant longtemps
Mauvaise réponse, selon ce que tu fais Rust peut être parfaitement envisageable (typiquement quelque chose qui n'a pas plein de dépendances à des libs C++ bien plus évoluées)
Donc en gros j'étais curieux de savoir quel est le cas d'usage de l'OP (j'hésite moi même à m'investir dans l'un des deux)
Le 11 novembre 2022 à 13:01:04 Link-Enfant a écrit :
Le 11 novembre 2022 à 12:57:53 :
Le 11 novembre 2022 à 12:46:24 Link-Enfant a écrit :
pourquoi le C++ nonobstant ? Et pas le RUST ?C++ est largement plus utilisé que Rust, et continuera de l'être pendant longtemps
Mauvaise réponse, selon ce que tu fais Rust peut être parfaitement envisageable (typiquement quelque chose qui n'a pas plein de dépendances à des libs C++ bien plus évoluées)
Donc en gros j'étais curieux de savoir quel est le cas d'usage de l'OP (j'hésite moi même à m'investir dans l'un des deux)
Tu blagues ?
Très peu d'entreprises utilisent Rust comparé à celles qui sont sur C++ depuis 10 ans, 20 ans, 30 ans ...
- 1
Données du topic
- Auteur
- Huzuni35
- Date de création
- 10 novembre 2022 à 21:49:56
- Date de suppression
- 13 novembre 2022 à 22:15:00
- Supprimé par
- Auteur
- Nb. messages archivés
- 18
- Nb. messages JVC
- 18