1
私はC++プログラミングの新人です。ここに私のコードは次のとおりです。C++エラー:フィールドに不完全な型があります - 独自のクラスオブジェクトを宣言します
#ifndef NODE_H
#define NODE_H
class Node
{
public:
Node();
Node(int);
virtual ~Node();
Node(const Node& other);
int getValue() { return value; }
void setValue(int val) { value = val; }
Node getPrev() { return prev; }
void setPrev(Node val) { prev = val; }
Node getNext() { return next; }
void setNext(Node val) { next = val; }
private:
int value; //!< Member variable "value"
Node prev; //!< Member variable "prev"
Node next; //!< Member variable "next"
};
#endif // NODE_H
それは言う:
error field 'prev' has incomplete type
error field 'next' has incomplete type
私は、ポインタ/参照を使用する場合は、プログラムが正常に動作します。なぜこのメカニズムが存在するのですか?どのようにポインタ/参照なしでそれを行うには? お返事ありがとうございます。
すべての「ノード」に「int」と2つの「ノード」が含まれている場合、そのサイズは無限になります。それはおそらくあなたが望むものではありません。 – Quentin
* "ポインタ/参照無しでどうやってやるの?" *短いストーリー:できません。 –
別の方法:https://stackoverflow.com/questions/6349822/incomplete-type-in-class-which-has-a-member-of-the-same-type-of-the-class-itse –