Bonjour,
Je viens de trouver ce code source:
Il y a deux fois la même fonction avec "const" et sans "const". Quand est-ce que le compilateur va choisir l'une ou l'autre ?
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
19 template<class T> inline T& Matrix4<T>::operator ()(size_t i, size_t j) { return operator T*()[j * 4 + i]; } template<class T> inline const T& Matrix4<T>::operator ()(size_t i, size_t j) const { return operator ()(i, j); } template<class T> inline Matrix4<T>::operator T*() { return &a11; } template<class T> inline Matrix4<T>::operator const T*() const { return &a11; }
Ou est-ce peut-être une erreur de programmation ? Dans ce cas pourquoi le compilateur ne l'interdit pas ?
J'ai l'impression que ma deuxième méthode me fait un seg fault et je crois qu'elle essaye de s'appeler elle même à l'infini mais je ne suis pas certain. Est-ce possible ?
Merci d'avance.
Partager