Rechercher : dans
Par :

Matrice carree c++

Dernière réponse le 17 jun 2009 à 08:53:26 jacinthe87, le 16 jun 2009 à 23:00:03 
 Signaler ce message aux modérateurs

Bonjour,
SVP comment initialer une matrice carree dans un constructeur

template <class T>
       Matrix<T>::Matrix(int d):dim(d){
                             matri=new T[dim][dim];  //erreur
                             }

??
The best way to escape from a problem is to solve it.
Configuration: Windows XP
Safari 530.5

Meilleures réponses pour « matrice carree c++ » dans :
Langage C - Les opérateurs VoirQu'est-ce qu'un opérateur ? Les opérateurs sont des symboles qui permettent de manipuler des variables, c'est-à-dire effectuer des opérations, les évaluer, etc. On distingue plusieurs types d'opérateurs : les opérateurs de calcul les opérateurs...

1

FlorianWebmastering, le 16 jun 2009 à 23:02:52

Ah la programmation objet je vous envoi un lien vers mon site.
Avez vous reçu mon Message privé? N'hésitez pas à me contacter (message privé ou mail), aide, ­assistance et développement de site web & d'applications.

Répondre à FlorianWebmastering

2

jacinthe87, le 16 jun 2009 à 23:28:40

Merci pour le lien, j'a corrigé l'erreur:

template <class T>
       Matrix<T>::Matrix(int l,int c):li(l),cc(c){
                             matri=new T[li*cc];
                             }

mais comment je dois le remplir?
comme ça :
Matrice<int> m(3,3);
m[0][0]=8; //erreur
The best way to escape from a problem is to solve it.

Répondre à jacinthe87

3

FlorianWebmastering, le 17 jun 2009 à 08:01:09

#include <stdio>
#include "matrice.h"
using namespace std;

int main(){
  matrice A(3,3);
  cin>>A;
  cout<<A<<endl;
  ...

  return 0;
}

demande à l'utilisateur d'entrer les valeurs pour la matrice carrée 3,3 et l'affiche.

N'hésitez pas à me contacter (message privé ou mail), aide, assistance et développement de site web & d'applications.

Répondre à FlorianWebmastering

4

 Char Snipeur, le 17 jun 2009 à 08:53:26

Tu peux surchargé l'opérateur []
T* Matrix::operator[](int i){return &matri[i*li];}
ou
T* Matrix::operator[](int i){return &matri[i*cc];}
selon la convention choisi pour représenté la matrice. L'inconvénient de cette méthode c'est que si la deuxième accolade dépasse la dimension, il n'y aura pas d'erreur mais un décalage de ligne ou de colonne.
Si tu veux, tu peux aller voir sur mon site, il y a une classe matrice tout en template aussi, avec toutes les méthodes qui vont bien. Salutation ! (il faut bien que vous compreniez que j'ai TOUJOURS raison)
Char Snipeur

Répondre à Char Snipeur