Re: Tableaux de références
Citation:
Envoyé par Zeusviper
J'ai une classe Matrice qui hérite d'une classe Tableau. Ainsi ma matrice est physiquement stocké comme un tableau à une dimension.
C'est une mauvaise utilisation de l'héritage public. En effet, il ne respecte pas le principe de substitution, qui veut qu'un membre de la classe dérivée soit valide partout où l'on attendait un membre de la classe de base.
Pourquoi ne pas simplement définir dans Matrix une variable membre de type Tableau ? (d'ailleurs, pourquoi parle-t-on de tableaus en français, et de matrices en anglais ?).
Citation:
Envoyé par Zeusviper
Code:
1 2
|
Matrix(const int M, const int N); |
Est tu conscient de ce que signifient ces const ici ?
Citation:
Envoyé par Zeusviper
Code:
1 2 3 4 5 6
|
Matrix::Matrix(const int M, const int N):Tableau(M*N), M(M), N(N){
L = new Ligne[M];
for(int i=0 ; i<M ; i++){
L[i].ptrlig = &el(i,0); // <-- probablement ici que ca merdouille! |
Même si ça doit marcher, j'avoue que ce code me met un peu mal à l'aise. Si jamais c'était la version const qui était appelée ? Celle qui retourne un int par copie ? D'accord, un constructeur initialisant un objet, celui-ci ne peut pas être const, mais bon, ça me laisse un goût un peu amer.
Citation:
Envoyé par Zeusviper
Code:
1 2 3 4
|
void Matrix::aflig(){
int i;
for(i=0 ; i<lig() ; i++){ |
J'aurais plutôt vu un col() ici...