Profil supprimé | Bonjour a toutes et a tous, J'ai un petit soucis avec un bout de mon programme: Code :
- // Access methods to get the (i,j) element:
- T& operator() (unsigned i, unsigned j);
- T const& operator() (unsigned i, unsigned j) const;
- [...]
- template<typename T>
- inline T& matrix<T>::operator() (unsigned row, unsigned col)
- {
- if (row >= nbRows() || col >= nbCols()) throw BoundsViolation();
- return data_[row][col];
- }
- [...]
- template<typename T>
- double matrix<T>::determinant()
- {
- // Use of the Doolittle algorithm with lower/upper tringular matrix to find the determinant
- unsigned iD, jD, kD, m_Rows, m_Cols;
- m_Rows = this -> nbRows();
- m_Cols = this -> nbCols();
- matrix<T> ldata_ (m_Cols,m_Rows); // Lower matrix
- matrix<T> udata_ (m_Cols,m_Rows); // Upper matrix
- for (iD = 0; iD < m_Cols; iD++)
- {
- for (jD = 0; jD < m_Rows; jD++)
- {
- udata_(iD,jD) = this -> data_[iD][jD];
- for (kD = 0; kD < iD - 1; kD++)
- {
- udata_(iD,jD) = udata_(iD,jD) - ldata_(iD,kD) * ldata_(kD,jD);
- }
- }
- }
|
A la ligne 30, il y a ceci :
Code :
- 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 :
- for (iCol = 0; iCol < m_.nbCols(); iCol++)
- {
- m_(iCol,iRow) = iRow + iCol;
- }
|
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 :
- 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
|