作者BBSealion (海狮)
看板EE_DSnP
标题[问题] 在myString.cpp中定义function
时间Wed Jan 5 22:45:43 2011
请问我可以在myString中定义新的function用吗?
为什麽会出现奇怪的compile error呢orz
我定义了一个自己的function叫做mylexOptions
void
mylexOptions(const string& option, vector<string>& tokens)
{
string token;
size_t n = myStrGetTok(option, token);
while (token.size()) {
tokens.push_back(token);
n = myStrGetTok(option, token, n);
}
}
在其他地方都还没有使用他之前,我先直接compile
却出现error messager :
---
> compiling: myString.cpp
myString.cpp: In function ‘void mylexOptions(const std::string&,
std::vector<std::basic_string<char, std::char_traits<char>,
std::allocator<char> >, std::allocator<std::basic_string<char,
std::char_traits<char>, std::allocator<char> > > >&)’:
myString.cpp:29: error: ‘myStrGetTok’ was not declared in this scope
make[1]: *** [myString.o] Error 1
---
请问前面这堆这是什麽意思呢?
另外myStrGetTok 不是就是定义在同个file底下了吗?
为什麽会跟我complain没定义呢?
---
PS:顺便附上myStrGetTok的code
size_t
myStrGetTok(const string& str, string& tok, size_t pos = 0,
const char del = ' ')
{
size_t begin = str.find_first_not_of(del, pos);
if (begin == string::npos) { tok = ""; return begin; }
size_t end = str.find_first_of(del, begin);
tok = str.substr(begin, end - begin);
return end;
}
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 218.168.232.34
※ 编辑: BBSealion 来自: 218.168.232.34 (01/05 22:46)
※ 编辑: BBSealion 来自: 218.168.232.34 (01/05 22:48)
1F:推 ric2k1:Function 定义的先後顺序有差!! 同一个档案里上面的 01/06 02:19
2F:→ ric2k1:funtion 如果要使用下面的 function, 你要在上面 function 01/06 02:20
3F:→ ric2k1:的前面宣告下面那个 function 的 prototype 01/06 02:20
4F:→ ric2k1:像是 size_t myStrGetTok(const string&, string&, ...) 01/06 02:21
5F:推 ric2k1:不过请注意!! 如果你在上面 function prototype define 了 01/06 02:21
6F:→ ric2k1:default argument, 如 (size_t pos = 0), 下面 function 在 01/06 02:22
7F:→ ric2k1:定义的时候就不可以在宣告一次 default argument, 01/06 02:22
8F:→ ric2k1:也就是说要: ... size_t pos, const char del) 01/06 02:23
9F:→ ric2k1:你可以试试看把 default argument 两边都加上去看看, 01/06 02:23
10F:→ ric2k1:保证你看不懂 error message 在写甚麽XD 01/06 02:24
11F:→ BBSealion:哎呀... 竟然是这们蠢的错误XDD 太久没自己定义global 01/06 10:04
12F:→ BBSealion:的function 了XDD 01/06 10:04
13F:推 ric2k1:XD That happens! 01/06 11:54