ここに私のコードの一部があります:
class Node{
public:
Node* parent;
Node* left;
Node* right;
int key;
};
(...)
/*
* Ps.: v1 is parent of v2!
* and assume that v1->parent is NULL
*/
void somefunction(Node*& v1,Node*& v2){
(...)
v2->parent = v1->parent; // The problem is here, more details below
(...)
}
問題は、 の引数に があるv2->parent
ため、を呼び出すと、コンパイラはそれが等しい(v2 の父親である) と解釈し、 に変更されますが、値を変更したいだけで、ではありません。<type>*&
somefunction()
v2->parent
v1
v1
NULL
v2->parent
v1
PS .:<type>*&
コードの下のいくつかの部分で使用する必要があります。引数の型を変更することはできません。