Aide c++ (débutant Class)

Huzuni35
2022-11-10 21:49:56

Je débute tout juste en POO, j'ai créé un premier programme intégrant des classes qui fonctionne très bien et je souhaite l'améliorer en ajoutant la notion d'héritage.
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 !! :)
https://image.noelshack.com/fichiers/2022/45/4/1668113307-capture-1.pnghttps://image.noelshack.com/fichiers/2022/45/4/1668113313-capture-2.png

Huzuni35
2022-11-10 21:53:27

up

Bugar
2022-11-10 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.

EarthAngel
2022-11-10 21:56:12

Les noms de variable et de fonction en français ayohttps://image.noelshack.com/fichiers/2022/24/6/1655577587-ahi-triangle-clopent.png

Huzuni35
2022-11-10 21:56:50

Le 10 novembre 2022 à 21:56:12 :
Les noms de variable et de fonction en français ayohttps://image.noelshack.com/fichiers/2022/24/6/1655577587-ahi-triangle-clopent.png

C'est ça qui créer le problème ? :'(

Huzuni35
2022-11-10 21:58:06

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 ?

Huzuni35
2022-11-10 22:12:27

last up

Sapok10an
2022-11-11 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 publicou protected

Je dois mettre mes getter/setter dans quelle classe ?

la classe qui possède les attributs (mère)

Huzuni35
2022-11-11 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 publicou protected

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

MetequePartout
2022-11-11 12:45:39

change private en protected pour les methodes et ca devrait marcher.
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

Link-Enfant
2022-11-11 12:46:24

ahi il débute en cacahttps://image.noelshack.com/fichiers/2022/24/6/1655577587-ahi-triangle-clopent.png

pourquoi le C++ nonobstant ? Et pas le RUST ?https://image.noelshack.com/fichiers/2022/24/6/1655577587-ahi-triangle-clopent.png

ogostosao2006
2022-11-11 12:47:55

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)

ogostosao2006
2022-11-11 12:49:43

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 publicou protected

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

MetequePartout
2022-11-11 12:50:12

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.

Sapok10an
2022-11-11 12:57:53

Le 11 novembre 2022 à 12:46:24 Link-Enfant a écrit :
pourquoi le C++ nonobstant ? Et pas le RUST ?https://image.noelshack.com/fichiers/2022/24/6/1655577587-ahi-triangle-clopent.png

C++ est largement plus utilisé que Rust, et continuera de l'être pendant longtemps

Link-Enfant
2022-11-11 13:01:04

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 ?https://image.noelshack.com/fichiers/2022/24/6/1655577587-ahi-triangle-clopent.png

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)

Sapok10an
2022-11-11 13:36:14

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 ?https://image.noelshack.com/fichiers/2022/24/6/1655577587-ahi-triangle-clopent.png

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

Huzuni35
2022-11-13 17:16:23

Le 11 novembre 2022 à 12:46:24 :
ahi il débute en cacahttps://image.noelshack.com/fichiers/2022/24/6/1655577587-ahi-triangle-clopent.png

pourquoi le C++ nonobstant ? Et pas le RUST ?https://image.noelshack.com/fichiers/2022/24/6/1655577587-ahi-triangle-clopent.png

Je sais pas trop dans mon domaine (finance) la plupart des banques demandes davantage de connaisance en C++ et quelques autres en C#, java

Infos
Gestion du forum

contact@geevey.com

API disponible. Utilisez le paramètre "api" en GET, peu importe le contenu, sur une page du site.

Notes

    Partenaire: JVFlux
    Ce site n'est pas associé à Jeuxvideo.com ou Webedia. Nous utilisons seulement des archives publiques.
    Il est inutile de me spammer par e-mail pour supprimer un topic. Au contraire, en conséquence, je mettrais votre topic dans le bloc ci-dessous.
Non-assumage
    Personne n'a pas assumé de topic pour le moment.