Bonjour à tous,
j'ai un petit problème pour redéfinir l'opérateur []. Je vous donne le code qui ne fonctionne pas :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 class B { public : B(B**); ... void getVal() const { return _valeur; } private: int _valeur; B ** _p; }; B::B(A * p=0):_valeur(0), _p(p) { }
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 class A { public : A(); ... B * operator[](int i) { return tab[i]; } private : B* tab[81]; }; A::A() { for (int i = 0; i < 81; ++i) tab[i] = new B(tab+i); }J'aimerais savoir comment définir l'opérateur [] pour que pa[0] soit valide et que a[0] soit valide aussi, si cela est possible.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 ... int main() { A a; A * pa = &a; cout << pa[0] << endl; // pas valide à mon avis cout << (*pa)[0] << endl; // valide à mon avis ... };
Edit :
Question reformulée.
Merci d'avance.
b Oo
Partager