ここに私のコードの一部があります:
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->parentv1v1NULLv2->parentv1
PS .:<type>*&コードの下のいくつかの部分で使用する必要があります。引数の型を変更することはできません。