C++ et class
Répondre à la discussion
Affichage des résultats 1 à 10 sur 10

C++ et class



  1. #1
    bird12358

    C++ et class


    ------

    Bonjour ,
    je suis en train de developper un programme dans lequel j'utilise le mecanisme d'heritage.
    En fait j'ai deux classes ,une classe bloc et une classe forme qui herite de la classe bloc.
    En fait une fore et composé d'un tableau de bloc.Voici le contructeur de la classe forme:
    Code:
    forme::forme(int X, int Y, char *f,Uint32 c)
    {
    	int j=0;
    	
    	char *phrase;
    	Set_forme_Pos(X,Y);
    	color=c;
    	phrase=forme_t;
    	strcpy(forme_t,f);
    	for(int i=0;i<16,i++;c++)
    	{
    		if(i==4 || i==8 || i==12)
    			j++;
    
    		if(*phrase=='1')
    		{
    		
    			tab_bloc[i]=bloc(X+(i%4)*29,Y+j*29,c);
    		
    		}else{
    		
    			
    		}		
    	}
    }
    Le probleme c'est qu'il me dit ca:

    1>c:\projetc++\prog1\proj\proj \forme.cpp(23) : error C2512: 'bloc'*: aucun constructeur par défaut approprié disponible
    1>c:\projetc++\prog1\proj\proj \forme.cpp(23) : error C2512: 'bloc'*: aucun constructeur par défaut approprié disponible

    Quelqu'un pourrait m'aider svp.

    D'avance merci.

    -----
    Dernière modification par JPL ; 13/02/2010 à 14h04.

  2. #2
    invitee840409b

    Re : C++ et class

    Bonjour,

    Pourrais-tu nous donner le prototype du constructeur de la classe bloc ?

    Cordialement,
    ProgVal

  3. #3
    bird12358

    Re : C++ et class

    Bien sur ,le voici:

    Code:
    class bloc{
    
    private:
    	int x_pos,y_pos;
    	Uint32 color;
    
    public:
    	bloc(int ,int ,Uint32);
    	//~bloc();
    	int Get_X_pos();
    	int Get_Y_pos();
    	void Set_bloc_Pos(int ,int);
    	void put_bloc(int ,int ,SDL_Rect *,SDL_Surface *,SDL_Surface * );
    	void put_pixel(int , int ,SDL_Surface *,Uint32 );
    };
    Dernière modification par JPL ; 13/02/2010 à 14h05.

  4. #4
    JPL
    Responsable des forums

    Re : C++ et class

    J'ai mis ton code dans la balise Code , ce qui améliore nettement la présentation.
    Rien ne sert de penser, il faut réfléchir avant - Pierre Dac

  5. A voir en vidéo sur Futura
  6. #5
    bird12358

    Re : C++ et class

    ok je te remercie c'est sur c'est plus lisible comme ca.
    C'est quoi les balises pour faire ca ?

  7. #6
    JPL
    Responsable des forums

    Re : C++ et class

    Je t'ai mis le symbole de la balise après le mot Code. N'utilise pas le bouton Réponse rapide sinon tu ne le verras pas.
    Rien ne sert de penser, il faut réfléchir avant - Pierre Dac

  8. #7
    SuperTux

    Re : C++ et class

    La ligne 23 de forme.cpp, laquelle est ?

    Sinon cette ligne me semble bizarre :
    Code:
    tab_bloc[i]=bloc(X+(i%4)*29,Y+j*29,c);
    tab_bloc est une donnée membre de la classe "forme", un tableau qui doit contenir plusieurs objets "bloc" qui sont instanciés dans le constructeur de la classe "forme" que tu as posté ci dessus, je suppose ?

    Si c'est le cas essaye avec :
    Code:
    tab_bloc[i]= new bloc(X+(i%4)*29,Y+j*29,c);
    PS: une classe qui en hérite d'une autre et en inclus des instances, sémantiquement cela me semble franchement à éviter si tu ne veux pas te retrouvé avec un programme incompréhensible...

  9. #8
    bird12358

    Re : C++ et class

    Bonjour, merci pour ta reponse Supertux.J'ai essayé ce qe tu m'as dit et il me fait tjrs une erreur :


    Code:
    1>c:\projetc++\prog1\proj\proj\forme.cpp(38) : error C2679: '=' binaire*: aucun opérateur trouvé qui accepte un opérande de partie droite de type 'bloc *' (ou il n'existe pas de conversion acceptable)
    1>        c:\projetc++\prog1\proj\proj\bloc.cpp(20): peut être 'bloc &bloc::operator =(const bloc &)'
    1>        lors de la tentative de mise en correspondance de la liste des arguments '(bloc, bloc *)'
    1>c:\projetc++\prog1\proj\proj\forme.cpp(42) : error C2679: '=' binaire*: aucun opérateur trouvé qui accepte un opérande de partie droite de type 'bloc *' (ou il n'existe pas de conversion acceptable)
    1>        c:\projetc++\prog1\proj\proj\bloc.cpp(20): peut être 'bloc &bloc::operator =(const bloc &)'
    1>        lors de la tentative de mise en correspondance de la liste des arguments '(bloc, bloc *)'
    #

    la ligne 38 et 42 :
    Code:
    tab_bloc[i]= new bloc(X+(i%4)*29,Y+j*29,c);
    tab_bloc[i]= new bloc(X+(i%4)*29,Y+j*29,c);
    Je sais toujours pas quoi faire.
    Dernière modification par yoda1234 ; 14/02/2010 à 22h01.

  10. #9
    SuperTux

    Re : C++ et class

    Comment est définis le tableau "tab_bloc" ? "bloc *tab_bloc[16]" ?

  11. #10
    yoda1234

    Re : C++ et class

    Exemple d'utilisation de la balise "Code" symbolisée par dans l'éditeur complet et non en passant par "Réponse rapide":

    [CODE]class bloc{

    private:
    int x_pos,y_pos;
    Uint32 color;

    public:
    bloc(int ,int ,Uint32);
    //~bloc();
    int Get_X_pos();
    int Get_Y_pos();
    void Set_bloc_Pos(int ,int);
    void put_bloc(int ,int ,SDL_Rect *,SDL_Surface *,SDL_Surface * );
    void put_pixel(int , int ,SDL_Surface *,Uint32 );
    };
    [/CODE]

    Ce qui donne:

    Code:
    class bloc{
    
    private:
    	int x_pos,y_pos;
    	Uint32 color;
    
    public:
    	bloc(int ,int ,Uint32);
    	//~bloc();
    	int Get_X_pos();
    	int Get_Y_pos();
    	void Set_bloc_Pos(int ,int);
    	void put_bloc(int ,int ,SDL_Rect *,SDL_Surface *,SDL_Surface * );
    	void put_pixel(int , int ,SDL_Surface *,Uint32 );
    };
    Dernière modification par yoda1234 ; 14/02/2010 à 22h10.
    Là où l'ignorance est un bienfait, c'est de la folie d'être sage (Thomas Gray).

Discussions similaires

  1. Laser product class 1
    Par inviteb624aa24 dans le forum Électronique
    Réponses: 5
    Dernier message: 21/07/2009, 22h48
  2. [Blanc] probleme class 150
    Par invited7eaf35b dans le forum Dépannage
    Réponses: 1
    Dernier message: 30/11/2008, 16h34
  3. Objet de Class et propriétés communes
    Par invite43918a89 dans le forum Logiciel - Software - Open Source
    Réponses: 4
    Dernier message: 12/10/2007, 20h51
  4. class factory
    Par invite57bafb2c dans le forum Logiciel - Software - Open Source
    Réponses: 2
    Dernier message: 28/11/2003, 18h19
Dans la rubrique Tech de Futura, découvrez nos comparatifs produits sur l'informatique et les technologies : imprimantes laser couleur, casques audio, chaises gamer...