Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1443 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  Une histoire d'operateur

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Une histoire d'operateur

n°1980893
Profil sup​primé
Posté le 05-04-2010 à 01:34:07  answer
 

Bonjour a toutes et a tous,

 

J'ai un petit soucis avec un bout de mon programme:

 
Code :
  1. // Access methods to get the (i,j) element:
  2. T&       operator() (unsigned i, unsigned j);
  3. T const& operator() (unsigned i, unsigned j) const;
  4. [...]
  5. template<typename T>
  6. inline T& matrix<T>::operator() (unsigned row, unsigned col)
  7. {
  8.    if (row >= nbRows() || col >= nbCols()) throw BoundsViolation();
  9.    return data_[row][col];
  10. }
  11. [...]
  12. template<typename T>
  13. double matrix<T>::determinant()
  14. {
  15. // Use of the Doolittle algorithm with lower/upper tringular matrix to find the determinant
  16. unsigned iD, jD, kD, m_Rows, m_Cols;
  17. m_Rows = this -> nbRows();
  18. m_Cols = this -> nbCols();
  19. matrix<T> ldata_ (m_Cols,m_Rows); // Lower matrix
  20. matrix<T> udata_ (m_Cols,m_Rows); // Upper matrix
  21. for (iD = 0; iD < m_Cols; iD++)
  22. {
  23.  for (jD = 0; jD < m_Rows; jD++)
  24.  {
  25.   udata_(iD,jD) = this -> data_[iD][jD];
  26.   for (kD = 0; kD < iD - 1; kD++)
  27.   {
  28.    udata_(iD,jD) = udata_(iD,jD) - ldata_(iD,kD) * ldata_(kD,jD);
  29.   }
  30.  }
  31.         }


A la ligne 30, il y a ceci :

Code :
  1. udata_(iD,jD) = this -> data_[iD][jD];


Ce bout de code marche mais ce que j'aimerais faire, c'est utiliser mon operateur () que j'ai cree et qui marche parfaitement dans mon main, sous cette forme par exemple, que je trouve plus propre qu'un this -> data_[iD][jD]:

Code :
  1. for (iCol = 0; iCol < m_.nbCols(); iCol++)
  2. {
  3. m_(iCol,iRow) = iRow + iCol;
  4. }


Le probleme est qu'il n'a pas de comprendre mon operateur si je fais cela (je ne suis pas du tout sur si c'est la bonne syntaxe a la base) :

Code :
  1. udata_(iD,jD) = this(iD,jD);


Ai-je loupe quelque chose ?

 

Merci d'avance,
Alendar


Message édité par Profil supprimé le 05-04-2010 à 01:35:09
mood
Publicité
Posté le 05-04-2010 à 01:34:07  profilanswer
 

n°1980900
Un Program​meur
Posté le 05-04-2010 à 08:48:45  profilanswer
 

this est un pointeur, donc (*this)(iD, jD).


---------------
The truth is rarely pure and never simple (Oscar Wilde)

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  Une histoire d'operateur

 

Sujets relatifs
Surcharge d'operateur []Mauvais choix de méthode lors de surcharge d'opérateur
[SHELL] Une histoire "pipe"Operateur doublé
[Shell] If dans awk et histoire de NRProbleme de surcharge operateur <<
java et opengl , une histoire de haine ?Surcharge d'opérateur
[BO - Webi] Operateur de contexteSurcharge d'opérateur ==
Plus de sujets relatifs à : Une histoire d'operateur


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR