begin process at 2012 05 29 02:32:30
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Au secours

 > 

Creation de class en C++


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

Creation de class en C++

jeudi 30 juin 2005 à 15:53:51 | Creation de class en C++

js1000

Bonjour a tous !

Je suis novice en C++ et je suis en train d'apprende les bases. J'ai donc une question a vous posez :

Je veux ecrire une classe Matrice pour me faire la main permettant de faire du calcul sur un objet Matrice.

                  class Matrice {
                  public :
                        ..... des variables et mon tableau a deux dimension
                        Matrice(int,int);
                        ~Matrice();
                  };

Lorque ma classe est ecrite je crée mon objet de la facon suivante :

                  Matrice M(3,3); // Matrice 3x3

Mes questions sont les suivantes :

      - Est il possible lorsque je declare une matrice M1 par exemple que "M1" soit automatiquement mis dans une chaine de caractere de la classe (cad de mettre le nom de la variable dans une chaine de car.)
      - Comment faire pour utiliser ma matrice de la facon suivante :

      int i = M(1,0);    // Mettre dans i la valeur contenu dans M a la ligne 1 colonne 0

Merci beaucoup d'avance
jeudi 30 juin 2005 à 17:00:49 | Re : Creation de class en C++

GoldenEye

Tu peux éventuellement rajouter un paramètre a ton constructeur et un membre à ta classe

class Matrice {
  public :
    Matrice(int,int,char *nom);
    ~Matrice();
  private :
    char m_nom[10];
  ...
};


// dans le .cpp
#include <stdio.h>
#include <string.h>

Matrice::Matrice(int n, int m, char *nom)
{
 // traitementde n et m
 strcpy(m_nom,nom)
...
}


Quant à la seconde question, ajoute une fonction membre Get(int i, int j) qui retourne la valeur i,j

Tu feras l'appel :

int i = MaMatrice.Get(1,0);


Optimiser, c'est bien, déboguer c'est mieux
jeudi 30 juin 2005 à 18:25:56 | Re : Creation de class en C++

vecchio56

Administrateur CodeS-SourceS
Pour obtenir "M1" à partir M1, cela peut être fait avant la compilation, grace au préprocesseur. Tu veux par exemple créer une marcro:

#define CreerMatrice(nom, x, y) Matrice nom(x, y, #nom)

Puis tu fais CréerMatrice(M1, 3, 3);
Dans la classe, tu peux considérer que la variable m_nom est constante, donc pas besoin de strcpy:

class Matrice
{
  const char* m_nom;

  Matrice(int n, int m, char *nom)
  {
    m_nom = nom;
    ...
  }
};
vendredi 1 juillet 2005 à 08:41:29 | Re : Creation de class en C++

Stubbornman

Pour ce qui est de ta seconde question, tu peux redefinir l'opérateur () de la façon suivante:

int Matrice::operator () (int i, int j)
{
  return _data[i][j];
}

avec l'hypothese que tu ai créé ta classe comme ceci:

class Matrice
{
  // Membres publics:
  int _row;
  int _column;
  int** _data;

  // Constructeur et destructeur
  public:
    Matrice(int i, int j);
    virtual ~Matrice();

  public:
    int operator () (int i, int j);

  ...

}

et le constructeur comme ceci:
Matrice::Matrice(int i, int j) :
  _row (i),
  _column (j)
{
  _data = new int*[_row];
  for int i = 0; i < _row; i++)
    _data[i] = new int[row];
}

evidemment ne pas oublier de faire delete[] dans le destructeur...

Cependant tu peux voir que de cette facon, ta matrice est forcement une matrice de int. Hors une matrice pourrait etre remplie egalement de float, double, unsigned int... que les methodes seraient inchangées... Dans ce cas, on peut utiliser les templates.

J'espere que ca t'aidera.
dimanche 3 juillet 2005 à 20:23:00 | Re : Creation de class en C++

0xYg3n3

Je crois que vous avezoublie qu'il est novice en programmation.
Et que vous parlez déjà de surdefinir un operateur.



Cette discussion est classée dans : int, class, classe, creation, matrice


Répondre à ce message

Sujets en rapport avec ce message

Matrice constante. [ par nsoualem ] j'ai crée une classe matrice avec un constructeurdu type:matrice(int nbligne,int nbcolonne)...elle marche a merveille!!!Lors de la création d'un code, taille de matrice [ par MLine ] Dans c++ builder 5, je déclare une matrice dans ma classe Organism :class Organism{ // plein d'autres trucs protected : static float DispCoef PB de matrice [ par limax84 ] J'ai un probleme d'allocation dynamique de memoire pour une matrice.pour un tableau, je procede comme ceci:int * t;t = new int [30];mais pour une matr CwinThread urgent [ par langedechu ] Bonjour,J ai un prob avce la classe CWinThread (je vais cracker si je n arrive pas le résoudre).Bon je m'explique : j ai creer une la classe : class c probleme sur les class [ par JRB ] g trouve un cour sur les applications reseaux mais il manque des explications si quelqu'un pourrait me les apporrtais sa serais super je cherche a ajo Problème pour dériver une classe [ par arc59 ] J'ai créé une classe Matrice comportant des fonctions get_ele, set_ele (toutes les 2 sont "virtual") et la redéfinition de l'opérateur +.Dans ma class petit pb de classe~~ [ par lerilcy ] Bijour a tous... J'ai declare une classe "CBloc" comme il faut (enfin je pense)class CBloc{...}et dans le code des procedures (bloc.cpp): le compilate classe et agregation... [ par Clonk ] bonjour,j'utilise plusieurs classes ayant des agregations (sous Borland).Disons en gros que si on a :class personne{private:int age;public:void affich Pb de class [ par SfyLer ] Imaginons :class teste{public:void fonction();void fonction2();};int teste::fonction() {int a = 1;return 0;}int teste::fonction2() {//ici j'aimerais r accéder à une variable globale type "class" ? [ par ilimo ] bonjour,comment accéder à une variable globale type "class" dans un autre fichier ?voici exemple plus détaillé : 1- //fichier CC.h--------------------


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
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,920 sec (3)

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