看板 C_and_CPP 關於我們 聯絡資訊
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) VS2008 額外使用到的函數庫(Library Used): (Ex: OpenGL, ...) 問題(Question): 我的副程式放在跟主程式不同的cpp檔裡,該副程式我想做成有回傳值類型的 但我想return的是一個二維矩陣,但一直無法成功,想請問我該怎麼做比較好? 餵入的資料(Input): 副程式需餵入7個double類型的數值去進行計算 預期的正確結果(Expected Output): 該副程式(或class的成員函數)可以成功回傳出矩陣給主程式, 或是副程式所在的cpp檔其他副程式使用 錯誤結果(Wrong Output): 程式碼(Code):(請善用置底文網頁, 記得排版) double NDIPolaris::QuaternionToMatrix( Marker outMarker ) { . . . . const int m = 4; const int n = 4; Tom[4][4] ={{R11, R12, R13, X}, {R21, R22, R23, Y}, {R31, R32, R33, Z}, {T41, T42, T43, T44}}; return Tom; //回傳矩陣Tom } 以上是副程式大致上的內容,我希望可以回傳出計算完得到的4X4二維矩陣 謝謝。 補充說明(Supplement): -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 120.126.5.215 ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1448523653.A.4E9.html
OPIV: 你可以傳一個陣列進去給它改 11/26 15:56
IKAFIRE: 一樓的方法,或new一個新矩陣,或用vector of vector 11/26 16:00
fightforlive: 推一樓,陣列當參數就會以address來傳 11/26 17:07
remizu: 或者是乾脆把矩陣做成class 11/26 19:02
overhead: 最簡單的做法是一樓那樣,不過有風險是你在外面長個過小 11/26 19:19
overhead: 空間,傳地址進func後,指派溢址。可以把matrix用class 11/26 19:20
overhead: 或struct包起來,日後搞壞記憶體的風險較低 11/26 19:20
t78923t: 如果我要return的矩陣是在A class裡,該矩陣的值用B clas 11/26 22:48
t78923t: s包起來,兩個class要互相繼承嗎? 11/26 22:48
OPIV: 如果有個int在A class裡,A和int要互相繼承嗎 11/27 04:33
noodleT: 離開副程式時,裡面宣告的東西就會消滅 11/27 20:23
noodleT: 你也可以在class宣告 private: double tom[4][4],然後用 11/27 20:29
noodleT: const double *class::func*(){return tom} 11/27 20:29
noodleT: 上面 func 後面不小心多一個* 11/27 20:30