C++ string.compare()

0 c++ string pointers

我正在为一项任务建立一个比较器,我正在把我的头发拉出来,因为这似乎很简单,但我无法理解.

这个功能给我带来了麻烦:

int compare(Word *a, Word *b)
{
    string *aTerm = a->getString();
    string *bTerm = b->getString();

    return aTerm->compare(bTerm);
}
Run Code Online (Sandbox Code Playgroud)

Word :: getString返回一个字符串*

错误:

 In member function `virtual int CompWordByAlpha::compare(Word*, Word*)':   
  no matching function for call to...
Run Code Online (Sandbox Code Playgroud)

......后跟一堆函数定义.

有帮助吗?

Fre*_*son 5

您正在将字符串与字符串指针进行比较,这是无效的.你要

   return aTerm->compare(*bTerm);
Run Code Online (Sandbox Code Playgroud)

  • string :: compare()将字符串引用作为参数,而不是指针.传递*bTerm取消引用指针,以便传递字符串对象,而不是字符串指针. (2认同)