39 votes

"Type incomplet" en classe qui a un membre du même type de la classe elle-même

J'ai une classe qui devrait avoir un membre privé de la même classe, quelque chose comme :

class A {
    private:
        A member;
}

Mais il me dit que le député est incomplet. Pourquoi ? Il ne me dit pas de type incomplet si j'utilise un pointeur, mais je préfère ne pas utiliser un pointeur. Toute aide est appréciée

28voto

Nick Points 2279

Voici un exemple concret de ce que vous essayez d'accomplir :

class A {
public:
    A() : a(new A()) {}
    ~A() { delete a; a = nullptr; }
private:
    A* a;
};

A a;

Happy Stack Overflow !

2voto

mah Points 21457

Vous ne pouvez pas inclure A dans A. Si vous étiez en mesure de le faire, et que vous avez déclaré, par exemple, A a;, vous auriez besoin de vous référer à a.member.member.member... infiniment. Vous n'avez pas beaucoup de RAM disponible.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X