std :: string指针的Find()方法

时间:2012-08-12 16:59:49

标签: c++

我有这样的功能:

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*’

为什么会发生这种情况,最重要的是,我该如何解决这个问题? (当没有指针时,它正在工作)

2 个答案:

答案 0 :(得分:3)

使用(*url).find()或更好url->find()

*url.find尝试调用find()函数,然后使用operator *

答案 1 :(得分:3)

当你真正想要的是*url.find()时,

*(url.find())相当于(*url).find()。更好的是,你应该使用url->find()代替。

原因是取消引用(*)运算符比元素选择(.)运算符低precedence