J'ai cette classe qui a un modèle double liste d'une struct de deux caractères et un autre structLes structures en C++ peuvent être modifiées? ou il y a une restriction?
typedef struct KeyC{
char K[5];
char C[9];
} TKeyC;
typedef struct Bin{
char Car;
char Cad[9];
TKeyC *KC;
} TBin;
class Bo {
private:
TDoubleList<TBin> *Ent;
public:
...
}
J'ai une méthode pour créer des noeuds. Pas de problème avec ça, mais quand j'appelle une autre méthode pour modifier la direction du pointeur vers une nouvelle structure TKeyC cela ne se produit tout simplement pas.
TNode<TBin> *Aux;
TKeyC *AuxKC=new TKeyC;
Aux->getObj().KC=AuxKC;
Dois-je utiliser une classe au lieu d'une struct dans ce cas, ou est un problème de struct, ou il y a un bogue?
Mise à jour
template <class T>
class TNode
{
private:
T TObj;
TNode<T> *Prev,*Next;
public:
TNode();
~TNode();
TNode(T);
void setObj(T);
void sPrev(TNode<T>*);
void sNext(TNode<T>*);
T getObj();
TNode<T>* gPrev();
TNode<T>* gNext();
};
Et la méthode getObj:
template <class T>
T TNode<T>::getObj() {return(TObj);};
Quelle est la déclaration de 'getObj()'? Vous avez donné peu d'informations précieuses sur ce que vous faites réellement ici; à la place, vous avez donné des informations sur ce que vous * pensez * du problème, qui est probablement sans rapport. Veuillez publier un exemple simple, complet et exécutable qui illustre votre problème. –
Quel type est 'Aux' et que retourne' getObj'. –
Merci pour la mise à jour. Comme je le soupçonnais, votre fonction 'getObj()' renvoie une * copie * de l'objet. J'ai mis à jour la réponse de David Crawshaw qui décrit le problème plus en détail. –