看板 C_and_CPP 關於我們 聯絡資訊
( *[1m *[m 為色碼,可以按 Ctrl+V 預覽會顯示的顏色 ) ( 未必需要依照此格式,文章條理清楚即可 ) 遇到的問題: (題意請描述清楚) 為了寫一個處理大量浮動數據的程式而定義了幾個類別型態 主要分為讀檔用和輸出用兩種 為了將來擴充和整合上的方便 想要把讀檔功能完全用讀檔類別內的成員函數搞定 也就是在 main() 裡面寫入 input::read(); 就讀檔完畢 問題是...讀檔函式使用到的資料本身就是類別陣列 希望讀入後的數據能夠在 main() 裡面提取出來做處理運算 請問...這有辦法在不從外部傳入指標或參照的狀況下完成嗎?? (因為類別陣列的大小是浮動的 在讀檔過程中才能得到決定大小的資訊) 補充說明: 目前架構長這樣... class orbital { public: static int num_of_stste; int atom_id; double *energy; double *int_s, *int_py, *int_pz, *int_px, *int_dxy... orbital() { energy=new double[this->num_of_stste]; int_s=new double[this->num_of_stste]; <────┐ ... ... | }//初始化參數 | | static void read(void); | }; | | void orbital::read(void){ //瘋狂讀檔區 | | ifstream ifile(filename,ios::in); | ... ... | ifile>>orbital::num_of_state; //得到類別成員的數列大小來配置動態記憶體 ifile>>data_num; //得到類別陣列大小 data_num ... ... orbital data[data_num]; //建立類別陣列 for(i...){for(j...){ifile>>data[i].orbit_s[j]>>data[i].orbit_p[j]....}} ... ...//進食數據迴圈 簡而言之... 本來想在 main()裡建立orbital物件再傳到 orbital::read() 裡接收資料 但參數初始化的陣列長度 num_of_stste 和類別陣列大小data_num 都是在讀檔的時候才知道 所以才會選擇把物件建立在 orbital::read() 內 但要傳回到 main() 裡與其他資料做合併計算就不得其門了... -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.112.22.225
james732:函式內動態配置 (使用後記得釋放) 09/06 22:30
tinlans:類別陣列這東西在 C++ 做不出來吧。 09/06 22:47
tinlans:用最直接的基本語法來說的話。 09/06 22:48
※ 編輯: OkeyBun 來自: 118.165.21.231 (09/07 00:48)