Re: [問題] 用指標參數輸入函數,無法變更原輸入(opencv)

看板C_and_CPP作者 (Lance)時間11年前 (2013/04/18 10:27), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串3/3 (看更多)
※ 引述《lakobe080 (kobe)》之銘言: : 不好意思,最近也碰這個問題 : 雖然有看了推文的提示要用double pointer : 但還是不懂要怎麼去改 : 為什麼c不會回傳呢?? // 方法1. int main() { ... IplImage * frame_c = NULL ; load_image( &frame_c ) ; cout << frame_c->width ; ... } void load_image( IplImage ** c ) { *c = cvLoadImage( "圖片路徑" ) ; cout << (*c)->width ; } // 方法2. call by reference ( in C++ only ) int main() { ... IplImage * frame_c = NULL ; load_image( frame_c ) ; cout << frame_c->width ; ... } void load_image( IplImage * & c ) { c = cvLoadImage( "圖片路徑" ) ; cout << c->width ; } 另外想說 call by reference 在 C++ 跟在其他語言例如JAVA, 是完全不一樣的東西... JAVA 的 call by reference 是以物件的觀點來定義, 在 C/C++ 的觀點來看, 只不過是傳址, 即是 call by value. 這是新手上網單純查關鍵字最容易搞混的地方. -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 1.34.80.4
文章代碼(AID): #1HRrd_uG (C_and_CPP)
討論串 (同標題文章)
文章代碼(AID): #1HRrd_uG (C_and_CPP)