class* object = NULL;
があり、object
をfunction(class* arg){arg = new class();}
に渡した場合、object = new class()
になりますか?オブジェクトのヌルポインタを関数に渡す
ポインタは単なるアドレスなので、私は尋ねる、右ですか?したがって、引数としてNULLポインタを渡して新しいオブジェクトを代入すると、アドレスはゼロから変更され、元のポインタは新しいオブジェクトを指しません。正しいですか?
class* object = NULL;
があり、object
をfunction(class* arg){arg = new class();}
に渡した場合、object = new class()
になりますか?オブジェクトのヌルポインタを関数に渡す
ポインタは単なるアドレスなので、私は尋ねる、右ですか?したがって、引数としてNULLポインタを渡して新しいオブジェクトを代入すると、アドレスはゼロから変更され、元のポインタは新しいオブジェクトを指しません。正しいですか?
この関数の内部では、arg
は新しいオブジェクトを指します。ポインタののコピーを渡すと、関数は終了し、それ以上はアクセスできなくなり、object
はそれを指しません(ただしそれでもNULLになります)。あなたがそれを修正する機能を有効にするために、オブジェクト(class*&
)への参照、またはオブジェクトへのポインタ(class**
)のいずれかを渡す必要
、
これは間違いありません。あなたは値にしてobject
を関数に渡しました。したがって、関数内の値を変更してもobject
には影響しません。関数がobject
を変更できるようにするには、参照または関数へのポインタをobject
に渡す必要があります。