プライベート プロパティの 1 つがクラスのインスタンスであるクラスがあります。Java では (私は Java に慣れているため)、次のようになります。
class Node {
private Node Pi;
}
そして今、これを C++ で書いています。同じことをしようとすると、赤い下線が表示されます (Visual C++ 2010 Express を使用しています)、「不完全な型は許可されていません」。
class Node {
private:
Node Pi; //Incomplete type is not allowed
};
これを変更して修正しようとしましNode Pi(void);
たが、このプロパティを変更する別の関数を使用しようとすると、「式は変更可能な左辺値でなければなりません」というメッセージが表示されます。
class Node {
private:
Node Pi(void);
public:
void setPi(Node n);
};
void Node::setPi(Node n) {
Pi = n; //Node Node::Pi() expression must be a modifiable lvalue
}
通常、Java ではこれに問題はないので、私の質問は、これをどのように実装すればよいかということです。私は C++ の初心者ではありませんが、しばらく C++ で書いていません。
class Node {
private Node Pi;
void setPi(Node n) {
this.Pi = n;
}
}