Partage
  • Partager sur Facebook
  • Partager sur Twitter

Problème passer type Sdl 2 en paramètre

    19 octobre 2019 à 22:53:17

    Bonjour,

    j'ai un problème à faire passer un type de la Sdl 2 en paramètre d'une de mes fonctions.

    Voici le code:

    //main
    
    SDL_Renderer *renderer;
    
    ...
    
    objet.fonction(renderer);
    
    
    //lobjet.hpp
    int fonction(SDL_Renderer);
    
    
    //lobjet.cpp
    int objet::fonction(renderer)
    {
    ...
    }

    J'ai tenté de mettre des astérisques et esperluettes dans tous les sens mais rien de marche...

    D'ailleurs ce bout de code fait partie d'un programme qui est un menu dans lequel on peut naviguer dans des sous menu. Ces menus consistent simplement à afficher des infos et gérer les évenements (touches, souris), j'aimerais faire cela en créant une classe différente pour le menu et chaque sous menu, chaque classe affichera et gérera les évenements indépendament. Est ce une bonne façon d'organiser ce genre de programme ? Et comment ce type de programme est organisé classiquement ?

    -
    Edité par digimon 20 octobre 2019 à 2:32:19

    • Partager sur Facebook
    • Partager sur Twitter
      20 octobre 2019 à 8:17:25

      Bonjour,

      La syntaxe possible est :

      // main
      #include "lobjet.hpp"
      
      SDL_Renderer*  renderer;       // instanciation donne type et nom
      ...
      objet.fonction(renderer);      // l'appel doit fournir une expression
      
      // lobjet.hpp
      int fonction(SDL_Renderer*);   // le prototype indique au moins le type
      
      // lobjet.cpp
      int objet::fonction(SDL_Renderer* rndr) // fonction indique le type et donne un nom
      {  ...

      Si ton problème est que tu n'arrives pas à modifier le paramètre, on peut passer par un pointeur comme en C

      SDL_Renderer*  renderer;        // instanciation donne type et nom
      ...
      objet.fonction2(&renderer);      // l'appel doit fournir l'adresse
       
      // lobjet.hpp
      int fonction2(SDL_Renderer**);   // le prototype indique au moins le type adresse
       
      // lobjet.cpp
      int objet::fonction2(SDL_Renderer** adr_rndr) // fonction indique le type et donne un nom
      {  *adr_rndr = ...

      Mais en C++ on utilise les références

      SDL_Renderer*  renderer;        // instanciation donne type et nom
      ...
      objet.fonction3(renderer);      // l'appel doit fournir une l-value
        
      // lobjet.hpp
      int fonction3(SDL_Renderer*&);   // le prototype indique au moins le type référence
        
      // lobjet.cpp
      int objet::fonction3(SDL_Renderer*& rndr) // fonction indique le type et donne un nom
      {  rndr = ... 



      -
      Edité par Dalfab 20 octobre 2019 à 8:37:15

      • Partager sur Facebook
      • Partager sur Twitter

      En recherche d'emploi.

      Problème passer type Sdl 2 en paramètre

      × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
      × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
      • Editeur
      • Markdown