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 :

les class, renvoyer une valeur?


Sujet :

C++

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    412
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Décembre 2006
    Messages : 412
    Points : 149
    Points
    149
    Par défaut les class, renvoyer une valeur?
    hello
    j'ai un peux de peine a comprendre les class, je ne comprend pas comment récupérer un contenu d'une variable après l'execution d'une fonction d'une classe?

    je vai faire court afin de parvenir a l'essentiel.

    j'uilise l'API C ,ncurse après l'execution de initscr();
    j'ai acès aux dimention de la console(ou du terminal).
    grace aux valeur: COLS et LINES

    donc comment recupérer mes 2 valeur a l'extérieur de la classe?

    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
    36
     
    fichier my_class_ncurse.h
    #include <cstddef>
    #include <stdexcept>
    #include <string>
     
    #include <ncurses.h>
    class my_ncurse_window
    {
    //	int COL;
    public:
     
    	//void  my_ncurse_start(long &api_ncuse_lines);
    	void  my_ncurse_start(long  api_ncuse_lines)
    	{
    			initscr();
    			if(!has_colors())
                            throw std::runtime_error("Ce programme requiert un terminal supportant la couleur");
                start_color();
                api_ncuse_cols=COLS; //recupérer ceci
                api_ncuse_lines=LINES; //et ceci ?
    	}
    }
     
    fichier my_class_ncurse.cpp
    je lance donc un 
    #include <iostream>
    #include <ncurses.h>
    #include <string>
    #include <cstring>
    #include "my_class_ncurse.h"
    using std::string;
    int main()
    {
    my_ncurse_window my_ncurse_start( );
    }
    donc je lance bien ma fonction my_ncurse_start( );
    mai comment je récupère mes 2 valeur ??

  2. #2
    Membre régulier Avatar de cynique
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 60
    Points : 72
    Points
    72
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    int main()
    {
    my_ncurse_window my_ncurse_start( );
    }
    Fait attention! Ce code *declare* une fonction "my_ncurse_start" qui n'accepte pas de paramètres et qui retourne un objet de type "my_ncurse_window". Pour créer un variable d'une classe en utilisant le constructeur par defaut, il faut éffacer les ():
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    int main()
    {
    my_ncurse_window my_ncurse_start;
    }
    Eh bien, il existe beaucoup de solutions pour ton problème. Voici quelques exemples brefs:

    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
    class my_ncurse_window
    {
    //	int COL;
    public:
     
    	my_ncurse_window(long &api_ncuse_cols, long &api_ncuse_lines)
    	{
    			initscr();
    			if(!has_colors())
                            throw std::runtime_error("Ce programme requiert un terminal supportant la couleur");
                start_color();
                api_ncuse_cols=COLS;
                api_ncuse_lines=LINES;
    	}
    };
    et en main():
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    int main()
    {
      long columns;
      long lines;
     
      my_ncurse_window window(columns, lines);
     
      // (1)
    }
    A la ligne (1), "columns" et "lines" ont les tailles de l'écran. Mais le problème (pour moi) ici est que les paramètres d'un constructeur devrait être des informations pour aider le constructeur, et ici, elles aident ceux qui créent les objets.

    Eh bien, deuxième exemple, qui sera mieux:
    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
    class my_ncurse_window
    {
    	int m_columns;
    	int m_lines;
    public:
     
    	my_ncurse_window()
    	{
    			initscr();
    			if(!has_colors())
                            throw std::runtime_error("Ce programme requiert un terminal supportant la couleur");
                start_color();
                m_columns = COLS;
                m_lines = LINES;
    	}
     
            int columns() const { return m_columns; }
            int lines() const { return m_lines; }
    };
    et en main():
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    int main()
    {
      int columns;
      int lines;
     
      my_ncurse_window window;
     
      columns = window.columns();
      lines = window.lines();
     
      // (1)
    }
    A la ligne (1), "columns" et "lines" ont les tailles de l'écran.

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    412
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Décembre 2006
    Messages : 412
    Points : 149
    Points
    149
    Par défaut
    Merci sa va m'aider
    pour ceux que sa interesse voila un tuto pour les bleu ,sa peux aider

    http://cpp.developpez.com/cours/

Discussions similaires

  1. Renvoyer une valeur d'une page à une autre
    Par mullger dans le forum Langage
    Réponses: 2
    Dernier message: 26/10/2006, 11h04
  2. [C#] Renvoyer une valeur à la fermeture d'une forms
    Par diaboloche dans le forum Windows Forms
    Réponses: 6
    Dernier message: 14/03/2006, 11h54
  3. Réponses: 1
    Dernier message: 22/09/2005, 15h46
  4. Question sur exports et les classes (pour une dll)
    Par DjPoke dans le forum Langage
    Réponses: 7
    Dernier message: 08/08/2005, 19h25
  5. [Reflection] Obtenir toutes les classes implémentant une interface
    Par Pill_S dans le forum API standards et tierces
    Réponses: 4
    Dernier message: 20/04/2005, 16h48

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