begin process at 2010 02 09 21:19:26
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C++ & C++ .NET

 > 

Divers

 > 

Débutant(e)

 > 

Problème instanciation de classe


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Problème instanciation de classe

vendredi 5 janvier 2007 à 16:57:28 | Problème instanciation de classe

brian85

Bonjour, je suis débutant, j'ai suivi quelques tutos du site du zéro qui sont très bien faits et pour aller plus loin, je me frotte aux classes, et là je commence (déjà) à butter avec un code tout con:

#include <iostream>
using namespace std;

class miaou{
    public:
    miaou::miaou(){
        cout << "miaou !!" << endl;
    }
    void miaou::test(){
        cout << "test!!!" << endl;
    }
};

miaou frimousse;
frimousse->miaou();


Je code avec code::blocks et avec ce code ridiculement petit quand je compile il me dit:
error: expected constructor, destructor, or type conversion before '->' token

Plizz Help !

Merci d'avance pour cette question qui peut vous sembler con mais bon bon je suis au bon endroit pour poster ça je pense ?
vendredi 5 janvier 2007 à 17:27:45 | Re : Problème instanciation de classe

Kangourou_Nomade

Salut brian, C'est tout bete. Quand tu fais 'miaou frimousse'. Tu instancie, donc tu crer un objet 'frimousse' de type 'miaou'. Pour acceder a tes methodes, tu utilises donc le point et non la fleche. La fleche te permettrai d'acceder aux methodes si frimousse etait un pointeur d'objet.
vendredi 5 janvier 2007 à 17:55:06 | Re : Problème instanciation de classe

brian85

hmm pareil avec un point m^me punition sauf qu'il m'indique le point
vendredi 5 janvier 2007 à 18:06:01 | Re : Problème instanciation de classe

luhtor

Deja enleve le mioua de tes fonctions membres:
class miaou{
    public:
    miaou(){
        cout << "miaou !!" << endl;
    }
    void test(){
        cout << "test!!!" << endl;
    }
};

miaou frimousse;
frimousse.test();

Depuis quand un constructeur est une fonction ! :)
vendredi 5 janvier 2007 à 18:40:16 | Re : Problème instanciation de classe

brian85

pas mieux:

class miaou{
    public:

    void miaou::test(){
        cout << "test!!!" << endl;
    }
};

miaou frimousse;
frimousse.test();

vendredi 5 janvier 2007 à 18:48:49 | Re : Problème instanciation de classe

AndreJAO

class miaou{ public: miaou(); void test(){ cout << "test!!!" << endl; } }; miaou frimousse; frimousse.test(); No comment ...
vendredi 5 janvier 2007 à 19:03:27 | Re : Problème instanciation de classe

brian85

soyez cool svp je me démerde comme je peux, c'est pas facile d'apprendre seul, s'il vous plaît soyez constructifs
vendredi 5 janvier 2007 à 23:18:10 | Re : Problème instanciation de classe

luhtor

Oue mais tout ca, ya deja 15 sites qui en parlent, c'est pour ca que c'est frustrant.

Mais donne plus de code, car ca doit venir d'ailleurs.
samedi 6 janvier 2007 à 13:34:50 | Re : Problème instanciation de classe

brian85

Désolé mais cet exemple est identique à ce que j'ai trouvé dans un cours d'un iut alors bon je t'ai pas obligé à me répondre luthor si des débutants qui viennent de trouver comment ça fonctionne me répondent ça me va amplement... Te force pas vraiment c pas la peine !
pour ceux que ça intéresse de corriger mon code pour que je puisse progresser le voici:

#include <iostream>
using namespace std;

class Avion {
    public :
    private :
    char _immatriculation[6], *_type;
    float _poids;
    void _erreur(char *message);

    void Avion::init(char m[], char *t, float p) {
        strcpy(_immatriculation, m);
        _type = new char [strlen(t)+1];
        strcpy(_type, t);
        _poids = p;
    }
    void Avion::affiche() {
        cout << _immatriculation << " " << _type;
        cout << " " << _poids << endl;
    }
};

Avion av1;
Avion *av2;
Avion compagnie[10]; // un tableau d'instances

av1.init("FGBCD", "TB20", 1.47);
av2->init("FGDEF", "ATR 42", 80.0);
compagnie[0].init("FEFGH","A320", 150.0);

av1.affiche();
av2->affiche();
compagnie[0].affiche();

Ce code donne exactement la même erreur lorsque je compile, voilà je suis bien sur un forum de débutant donc je pose des questions de débutant auxquelles je n'ai pas trouvé de réponse, donc ceux que ça fatigue... eh bien ne vous fatiguez pas mais c'est désagréable d'être aussi mal acceuilli sur un forum

Merci d'avance à ceux qui se rappellent encore de leurs débuts.

samedi 6 janvier 2007 à 14:04:27 | Re : Problème instanciation de classe

vecchio56

Administrateur CodeS-SourceS
Réponse acceptée !
Pour pouvoir appeler tes méthodes, tu dois les mettre en public (elle étaient en private).
Le Avion:: est a mettre seulement si tu définis tes méthodes en dehors de la classe
av2 n'était pas initialisé. Tu peux l'initialiser en faisant new avion.
Il reste un truc: la mémoire allouée dans init nest pas libérée
Voila un exemple complet qui devrait compiler et s'exécuter sans erreur:

#include <iostream>
using namespace std;

class Avion {
private:
    char _immatriculation[6], *_type;
    float _poids;
    void _erreur(char *message);

public:
    void init(char m[], char *t, float p) {
        strcpy(_immatriculation, m);
        _type = new char [strlen(t)+1];
        strcpy(_type, t);
        _poids = p;
    }
    void affiche() {
        cout << _immatriculation << " " << _type;
        cout << " " << _poids << endl;
    }
};

int main()
{
  Avion av1;
  Avion *av2 = new Avion();
  Avion compagnie[10]; // un tableau d?instances

  av1.init("FGBCD", "TB20", 1.47);
  av2->init("FGDEF", "ATR 42", 80.0);
  compagnie[0].init("FEFGH","A320", 150.0);

  av1.affiche();
  av2->affiche();
  compagnie[0].affiche();

  delete av2;
}

_____________________________________
Un éditeur de ressources gratuit pour Windows


1 2

Cette discussion est classée dans : problème, code, classe, instanciation, miaou


Répondre à ce message

Sujets en rapport avec ce message

Problème "général" avec Direct3D, HELP ! [ par ProGamer ] J'ai commencé une application Direct3D. Elle était constituée d'une classe principale qui contenait l'objet LPDIRECT3D8. Tout marchait bien. Ensuite, Petit problème de code [ par mimyne ] Bonjour g le code suivant:void Resultat_Clicked(Object* pSender, EventArgs* pArgs){ int operation = 5; char* chaine[10]; if (pSender == Btnres) { //o Problème de code en c++ (fonction itoa) [ par mimyne ] voila g le code suivant:void Resultat_Clicked(Object* pSender, EventArgs* pArgs){ int operation = 5; char* chaine[2]; if (pSender == Btnres) { { ito classe derivee de template [ par payen ] Salut a tous,juste une petite question sur les template et les classes derivees ... j'ai donc une classe template declarre comme suit: CObject [ par ifren ] salutj'ai un petit probleme,bon j'ai une classe data qui herite de la classe CObject, jusque la normalj'ai un tel codeData::Data(): // Copie de l'obje problème chaines de caractères [ par tintin72 ] BonjourJ'aimerai avoir un petit éclaircissement sur les chaines de caractères.Voici un programme tout bête... char prenom[100]; cout gets(pr If problème [ par Hades53 ] J'ai un problème avec If :char*variable1;variable1 = "bonjour";if (variable1 == "bonjour") cout < Envoi de classe avec send [ par piemur2000 ] Bonjour,Je voudrai envoyer une classe grace à un send.Par exemple cette classe :class Donnees{ int Type; int Taille; d pourkoi pointeur vers classe ? [ par Arkko ] Quelquun peut m'expliquer pourquoi ce code cree un pointeur NULL vers un classe et apres quil declare un variable de type cMyD3dApplication et met une Problème incompréhensible [ par CyberP ] Dans un callback d'une fenêtre, j'ai inséré ce code :case WM_PAINT:{ PAINTSTRUCT peindre; HDC rect; rect = BeginPaint(hWnd, &peindre); Engine.dr


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,577 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales