我有这样的功能:
int find_string ( string *url){
if(*url.find() != string::npos){
[...]
}
[...]
}
并以这种方式称呼它:
find_string(&url);
但是我收到了以下编译错误:
request for member ‘find’ in ‘url’, which is of non-class type ‘std::string*’
为什么会发生这种情况,最重要的是,我该如何解决这个问题? (当没有指针时,它正在工作)
答案 0 :(得分:3)
使用(*url).find()
或更好url->find()
*url.find
尝试调用find()
函数,然后使用operator *
答案 1 :(得分:3)
*url.find()
时, *(url.find())
相当于(*url).find()
。更好的是,你应该使用url->find()
代替。
原因是取消引用(*
)运算符比元素选择(.
)运算符低precedence。