作者ijb ()
看板EE_DSnP
標題[問題] MVAR的問題
時間Wed Nov 22 00:44:22 2006
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