Mat mat = new Mat()みたいなことをしました。各メソッドはほぼ同じことしてます。が、後者のメソッドが思ったように動かないケースに遭遇し、ちょっと格闘しました。
methodA(mat);
methodB(mat);
Matは基本参照渡し
結論(解決策)は、Matは基本参照渡しだということ。つまり、methodA内で変数matを処理したら、呼び出し元でも反映されているということ。つまり、上記の例では、Aに渡されるmatとBに渡されるmatは別物です。
もし、同じmatを渡したいなら、closeメソッドでコピーを作ってそれを渡しましょう。
0 件のコメント:
コメントを投稿