IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

 C++ Discussion :

utiliser une classe (contenu de valeur).fonction();


Sujet :

C++

  1. #1
    Membre habitué
    Avatar de pedronatorBzh
    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Avril 2019
    Messages
    52
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Développeur de jeux vidéo
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2019
    Messages : 52
    Points : 198
    Points
    198
    Billets dans le blog
    1
    Par défaut utiliser une classe (contenu de valeur).fonction();
    bonjour je dev un jeu ou TOUS les perso (héro principal,monstres) hérite de la classe main qui contient frapper:
    mais je suis concé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    void frapper(std::string cible){
            std::getline(std::cin,cible)
           (cible).dammage(20)
        }
    mon nom est PEDRO LE BRETON joueur,programmateur(html,batch,c,c++,fx92+)

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 115
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 115
    Points : 32 967
    Points
    32 967
    Billets dans le blog
    4
    Par défaut
    Citation Envoyé par pedronatorBzh Voir le message
    TOUS les perso hérite de la classe main
    WTF ?
    Citation Envoyé par pedronatorBzh Voir le message
    mais je suis concé
    Ton code a aucun sens, ma boule de crystal a simplement explosé en espérant comprendre ce que tu voulais faire...
    Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation réseau ?
    Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.

  3. #3
    Membre habitué
    Avatar de pedronatorBzh
    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Avril 2019
    Messages
    52
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Développeur de jeux vidéo
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2019
    Messages : 52
    Points : 198
    Points
    198
    Billets dans le blog
    1
    Par défaut
    et la
    ?
    mon nom est PEDRO LE BRETON joueur,programmateur(html,batch,c,c++,fx92+)

  4. #4
    Expert éminent
    Homme Profil pro
    Ingénieur développement matériel électronique
    Inscrit en
    Décembre 2015
    Messages
    1 565
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement matériel électronique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Décembre 2015
    Messages : 1 565
    Points : 7 648
    Points
    7 648
    Par défaut
    La mienne aussi s'est désintégrée.
    Pourrait-on avoir une clarification de ton problème?

  5. #5
    Membre expérimenté

    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2011
    Messages
    685
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2011
    Messages : 685
    Points : 1 418
    Points
    1 418
    Par défaut
    La mienne a perçu quelque chose

    Si tu veux passer un objet de la classe Personnage en paramètre de ta fonction, tu dois indiquer dans la signature de ta fonction le bon type (le nom de la classe). Hors, tu indiques que l'objet attendu en paramètre est un objet de type "string", donc une chaine de caractère du genre "Roger". Mais la classe "string" ne possède pas de fonction "dammage".


    Si tu veux pouvoir indiquer quelle cible est attaquée à partir d'une chaine de caractère fournie dans l'entrée standard par l'utilisateur de ton programme, alors côté code, tu dois fabriquer - ou récupérer s'il existe déjà - l'objet de la classe "Personnage" qui a pour nom celui passé par l'utilisateur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    void frapper(std::string nom_cible){
            std::getline(std::cin,nom_cible);
     
            Personnage* cible = maSuperFonctionQuiRecupereUnObjetPersonnageQuiAPourNom(nom_cible);
            cible->dammage(20);
        }
    Bon il y'aurait un million de choses à revoir pour faire ce que tu veux faire proprement, mais on va se contenter déjà de t'aider à appréhender les notions de base.

    Bon courage !
    Nullius in verba

  6. #6
    Membre habitué
    Avatar de pedronatorBzh
    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Avril 2019
    Messages
    52
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Développeur de jeux vidéo
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2019
    Messages : 52
    Points : 198
    Points
    198
    Billets dans le blog
    1
    Par défaut
    voila le code tous les perso hérite de ca
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
     
    class Pmain{
        public:
            //========INTERACTIF==================
            // ajouter: std::string name;
            void rest(){
                std::string myname;
                int life;
                int mana;
                int defence;
                int attaque;
                int level;
                int candy;
                int MAXlife;
                int MAXmana;
                int arme_number;
            }
     
            void defname(std::string dname){myname = dname;}
     
            std::string name = myname;
            void AFFname(){std::cout << myname;}
     
            void Dname(){std::getline (std::cin, myname);name = myname;}
     
            void dire(std::string const dire) {name = myname;std::cout <<myname<<":  "<< dire <<std::endl;}
     
            void dire_using(std::string const dire_using){name = myname;std::cout <<myname<<" using "<< dire_using <<std::endl;}
     
            void dammage(int NUMdammage,std::string envoiyeur){
            name = myname;
            NUMdammage - defence;
            life - NUMdammage;
            std::cout <<NUMdammage<< " damage on "<< myname <<"   by "<<envoiyeur<<"\n\n";}
     
            //=========ATTAQUE=========
     
        void frapper(Pmain cible){
            cible.rest();
            cible.dammage(20,cible.myname);
     
        }
    mon nom est PEDRO LE BRETON joueur,programmateur(html,batch,c,c++,fx92+)

  7. #7
    Expert éminent
    Homme Profil pro
    Ingénieur développement matériel électronique
    Inscrit en
    Décembre 2015
    Messages
    1 565
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement matériel électronique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Décembre 2015
    Messages : 1 565
    Points : 7 648
    Points
    7 648
    Par défaut
    Quand tu écris cela :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    void frapper(Pmain cible){
            // cible EST un Pmain donc certainement pas d'un autre type
            cible.rest();
            cible.dammage(20,cible.myname);
        }
    La fonction reçoit une copie de cible qui EST du type Pmain. Et donc ça n'est PAS un type dérivant de Pmain!

    L'accès à un classe "du type Pmain" ne peut pas ce faire par un objet Pmain. Il doit se faire par un pointeur ou une référence.
    Exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    void frapper(Pmain &cible) { // note le '&' que j'ai ajouté
            // cible est donc maintenant une référence à un Pmain
            cible.rest();                                   // là on a bien une référence donc un objet qui peut dériver de Pmain
            cible.dammage(20,cible.myname);  // là aussi
        }

  8. #8
    Membre habitué
    Avatar de pedronatorBzh
    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Avril 2019
    Messages
    52
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Développeur de jeux vidéo
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2019
    Messages : 52
    Points : 198
    Points
    198
    Billets dans le blog
    1
    Par défaut
    correction ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    void frapper(Pmain cible){
            cible.dammage(20 + cible.attaque,cible.myname);
            cible.dire("--censuré-- \nlife -__\n\n");
     
        }
    puis
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    jean.frapper(water_monster);
    water_monster = cible;
    jean est un aventurier c juste Pmain avec 2 attaques(fonctions en plus)
    mon nom est PEDRO LE BRETON joueur,programmateur(html,batch,c,c++,fx92+)

  9. #9
    Rédacteur/Modérateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 115
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 115
    Points : 32 967
    Points
    32 967
    Billets dans le blog
    4
    Par défaut
    Honnetement vue la qualité du code tu as bien d'autres problèmes avant celui qui t'amènes ici.
    La (re)lecture d'un cours et de docs devraient être ta priorité.
    Les concepts d'héritage, typage statique/dynamique, pointeur, référence, copie, et bien d'autres sont clairement manquants...
    Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation réseau ?
    Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.

  10. #10
    Membre habitué
    Avatar de pedronatorBzh
    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Avril 2019
    Messages
    52
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Développeur de jeux vidéo
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2019
    Messages : 52
    Points : 198
    Points
    198
    Billets dans le blog
    1
    Par défaut FINI non resolut
    jais TOUT modifié la structure et ca marche mais jait un autre problème mais c sur un autre sujet ^^
    mon nom est PEDRO LE BRETON joueur,programmateur(html,batch,c,c++,fx92+)

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 13
    Dernier message: 22/05/2015, 11h25
  2. comment utiliser une classe de fonction
    Par WBO dans le forum VB.NET
    Réponses: 5
    Dernier message: 08/12/2008, 14h27
  3. [VBA] utiliser une macro contenue dans un autre classeur
    Par laloune dans le forum Macros et VBA Excel
    Réponses: 20
    Dernier message: 01/02/2006, 18h46
  4. [Applet]utiliser une classe d'un package dans une applet
    Par jeromejanson dans le forum Applets
    Réponses: 1
    Dernier message: 30/06/2005, 08h13
  5. [EJB][JONAS] EJB utilisant une classe "externe"
    Par Gregory3000 dans le forum Eclipse Java
    Réponses: 4
    Dernier message: 13/12/2004, 19h57

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo