CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

C++ Les Classes

m-2
m-2
Niveau 10
02 avril 2006 à 00:17:09

voilà, j´ai une question de débutant, mais vu que j´en suis un, ca devrait passé :)

dans le header de ma class musique, j´ai déclaré la fonction suivante:
public:
void ObtenirNomFichier();

dans le cpp, je l´ai déclaré de cette facon:
void ClMusique::ObtenirNomFichier()
{
ClMusique::m_nomFichier= ObtenirString("Nom de la liste: ");
}

puis dans le main, j´ai fait ceci dans un switch:
case 1 : ClMusique::ObtenirNomFichier(); break;

la fonction ObtenirNomFichier demande à l´utilisateur d´écrire un nom de fichier puis elle est écrite dans la variable m_nomFichier qui elle, est déclaré dans la class (en private)

à la compilation, on me donne l´erreur suivante:
error C2352: ´ClMusique::ObtenirNomFichier´ : illegal call of non-static member fonction | main.cpp

alors voila, je sais pas si c´est clair mais je serais reconnaissant que vous me mettiez sur la piste :)

p.s. vous devriez créer un topic d´aide officiel pour les questions en C++, vu le nombre incroyable de topic à ce sujet!

dromar34
dromar34
Niveau 9
02 avril 2006 à 00:25:40

prend mon adresse msn ce sera plus pratique :p
Dromar34@msn.com

dromar34
dromar34
Niveau 9
02 avril 2006 à 00:35:17

bon sinon , en gros :
// deja la class donne a peu pres ca.

class ClMusique
{
private:
char *m_nomFichier;
public:
void ObtenirNomFichier();
};

// pour declarer ta fonction (ObtenirNomFichier())
tu fais;
void CIMusique::ObtenirNomFichier()
{
/*la tu marque ce que ta foncion va faire mais si tu veux par exemple utiliser ta variable "m_nomFichier"
pour y entrer une chaine tu as juste a marquer :*/
m_nomFichier = "ta chaine";
/*quand tu declare une fonction d´une class comme ca tu "rentre"vdans ta class donc tu peut acceder au variables private*/
}
/*et pour utliser ta fonction , tu cree un objet (ca doit pas s´appeler comme ca du tout :p)*/

ClMusique *musique;

//et apres tu fais:

musique->ObtenirNomFichier();

/* tout cela c´est ce que j´ai compris des class
il ce peut que je me trompe completement dans les noms ou dans d´autre chose, mais le principal c´est que ca marche :D */

m-2
m-2
Niveau 10
02 avril 2006 à 01:19:13

je t´aime! :coeur:

dnob700
dnob700
Niveau 10
02 avril 2006 à 02:27:20

une classe, c´est comme un type de variable : il faut déclarer des variables pour pouvoir t´en servir.

Donc il faut faire :
CIMusique musique;

puis :
musique.ObtenirNomFichier();

si tu utilise la méthode que t´as donnée dromar à la fin de son post, tu doit en plus allouer la mémoire et initilialiser l´objet, et je ne suis pas sur que tu veuille le faire (il faut utiliser new), sinon ça ne marche pas. Car dans ce cas tu declare seulement un pointeur pour un objet de cette classe, mais pas vraiment un objet de la classe (c´est ce que veux dire l´étoile).

m-2
m-2
Niveau 10
02 avril 2006 à 03:06:54

j´aurais pas du manquer le cours sur les pointeur et les new/delete ...!

dromar34
dromar34
Niveau 9
02 avril 2006 à 10:44:24

Merci pour cette plus grande explication dnob700 :)

Sous forums
  • Aide à l'achat Mac
  • Création de Jeux
  • Linux
  • Création de sites web
  • Programmation
  • Internet
  • Steam Deck
  • Macintosh
  • Hardware
La vidéo du moment