看板 EE_DSnP 關於我們 聯絡資訊
MvarCmd::exec() {const string& option) { .... CmdExec::lexOptions(option, options, 2); .. ModNum v; if (!ModNum::getStrVal(options[1], v)) .... .. } 裡面的ModNum v這行,compiler說會造成ModNum::ModNum(int)的錯誤 這是為什麼呢? 不能這樣子使用嗎?? 還有lexOptions()中,會用到myStrGetTok(),主要的用意是?? e.g: mvar dd 7 是把dd, 7分別存到options[0],options[1]裡面去嗎? 我把myStrGetTok()::begin print出來, begin=3(似乎合理) 但是我用mvar ddd 7時,begin=2?? 此時,我預期begin=4 為了驗證.... 自己寫了一個小程式如下: // 0123456789 s1="dd 7"; cout << "Original s1 =" << s1 << endl; string str_tmp; const char del = ' '; size_t pos = 0; size_t begin = s1.find_first_not_of(del, pos); cout << "begin = " << begin << endl; 無論s1=dd 7,或者是ddd 7, begin=0; 害我到最後都不曉得哪個才是正確的了 超囧.... -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 219.68.74.95
kevinlads:find_first_not_of... 11/22 01:06
kevinlads:find_first_of 11/22 01:06
ric2k1:請將 compile error message 附上來, 我才有辦法幫你診斷.. 11/22 01:39
ric2k1:find_first_not_of from pos = 0 當然是第一個 'd' 囉... 11/22 01:40
kevinlads:ModNum v 這一行...會不會是 Constructor 沒給 Default 11/22 09:49
ijb:就像上面說的...在myStrGetTok裡面,dd 7執行後begin=3 囧... 11/22 10:38
ijb:ModNum v constructor有給default value給private data member 11/22 10:39