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 :

Création de classe


Sujet :

C++

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    121
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 121
    Par défaut Création de classe
    Bonjour,

    j'ai un soucis avec mon 1er programme de création de classe.
    Je voudrais créer une classe qui s'appelle vecteur avec 3 coordonnées x,y,z et faire des opérations dessus.
    J'ai recopié bètement ce qui est dans mon cours pour déclarer une classe et j'ai appelé le fichier "vecteur.cc"
    Ensuite j'ai crée un programme (youpi.cc) tout bète pour utiliser la fonction "afficher" que j'ai déclaré dans vecteur.cc.

    Et j'ai 2 soucis :

    1) dans le fichier où je déclare la classe j'ai 2 erreurs que je ne comprend pas :
    " [Linker error] undefined reference to `WinMain@16' "
    " ld returned 1 exit status "

    Je vous file le programme

    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
    #include<stdio.h>
    #include<stdlib.h>
    #include<unistd.h>
    #include<iostream>
     
    class vecteur
    {private : float x,y,z;
    public :
    	vecteur()
    	{x=0;y=0;z=0;}
    	vecteur(float a,float b,float c)
    	{x=a;y=b;z=c;}
     
    	void afficher()
    	{printf("%f %f %f\n",x,y,z);}
    	void modifier(float a,float b,float c)
    	{x=a;y=b;z=c;}
     
    	vecteur operator +(vecteur u)
    	{vecteur resultat;
    	resultat.x=x+u.x;
    	resultat.y=y+u.y;
    	resultat.z=z+u.z;
    	return resultat;}
     
    	float operator *(vecteur u)
    	{float resultat;
    	resultat=x*u.x+y*u.y+z*u.z;
    	return resultat;}
     
    	void operator =(vecteur u)
    	{x=u.x;
    	y=u.y;
    	z=u.z;}
    };

    2) Et donc quand j'essai d'utiliser la fonction afficher le logiciel me dit que cette fonction n'est pas déclarée. Pourtant on m'a dit qu'en mettant vecteur.cc et youpi.cc dans le meme repertoire, et en ajoutant #include"vecteur.cc" ça devrait marcher.
    Enfin les 2 problèmes sont sans doute liés....

    Je vous met le fichier youpi.cc :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    #include<stdio.h>
    #include<stdlib.h>
    #include<unistd.h>
    #include<iostream>
    #include"vecteur.cc"
     
    main()
    {
    vecteur u,s(1,2,3),t(4.3,5,6);
    u=s+t;
    u=s;
    afficher(u);
    }

    Voila si vous pouviez me dire d'où viens le problème ça m'arrangerais. Merci d'avance

  2. #2
    Membre éclairé Avatar de Higestromm
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    516
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 516
    Par défaut
    Citation Envoyé par SAKDOSS
    1) dans le fichier où je déclare la classe j'ai 2 erreurs que je ne comprend pas :
    " [Linker error] undefined reference to `WinMain@16' "
    " ld returned 1 exit status "
    C'est par ce que tu créer une application Win32 (je crois que c'est ca) et que tu ne doit pas déclarer de main mais un Minmain.


    Citation Envoyé par SAKDOSS
    2) Et donc quand j'essai d'utiliser la fonction afficher le logiciel me dit que cette fonction n'est pas déclarée. Pourtant on m'a dit qu'en mettant vecteur.cc et youpi.cc dans le meme repertoire, et en ajoutant #include"vecteur.cc" ça devrait marcher.
    Enfin les 2 problèmes sont sans doute liés....

    Voila si vous pouviez me dire d'où viens le problème ça m'arrangerais. Merci d'avance
    ecrit plutot ca :
    u.afficher()

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    121
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 121
    Par défaut
    A merci c'est bien u.afficher().

    Par contre je n'ai pas compri ce que tu as dit à propos de Win32. Je n'ai pas utilisé de main dans le programme (remarque je sais meme pas ce qu'est une application Win32...).

  4. #4
    Membre éclairé Avatar de Higestromm
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    516
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 516
    Par défaut
    Citation Envoyé par SAKDOSS
    A merci c'est bien u.afficher().

    Par contre je n'ai pas compri ce que tu as dit à propos de Win32. Je n'ai pas utilisé de main dans le programme (remarque je sais meme pas ce qu'est une application Win32...).
    Si tu as utiliser un main :

    c'est la fonction que ton programme execute par défaut... Dans le cas d'une application win32 (merci microsoft) tu doit déclarer une fonction dont le prototype est :

    int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,PSTR szCmdLine,int iCmdShow);

    tien un lien qui parle de ca

    http://texel3d.free.fr/win32/base1.htm

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    121
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 121
    Par défaut
    A ok l'erreur s'afficher qd je compilai l'autre programme donc je pensais que ça concernait que celui là.

    Merci le lien je jetterai un coup d'oeil ça fera pas de mal

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

Discussions similaires

  1. [RMI] problème Création *_stub.class et *_skel.class
    Par philobedo dans le forum API standards et tierces
    Réponses: 6
    Dernier message: 29/05/2006, 20h03
  2. Contrôler l'ordre de création de classes globales
    Par 10_GOTO_10 dans le forum C++
    Réponses: 4
    Dernier message: 24/04/2006, 20h39
  3. Création de classe exception
    Par HNT dans le forum Eclipse Java
    Réponses: 2
    Dernier message: 03/01/2006, 15h53
  4. Création de classes à la volée...
    Par ouiffi dans le forum Langage
    Réponses: 8
    Dernier message: 16/12/2005, 18h01

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