表达式必须具有类类型(运算符)



我有一个运算符,它接收不可修改的字符串的地址。我正在尝试将收到的地址的大小与项目SKU进行比较。如果它们相同,我返回 true,如果不是 false。我在 c.size(( 上收到一个错误,说表达式必须具有类类型,我不确定为什么

char Item::operator==(const char* c)
{
    if (this->get_sku.size() == c.size()) //Error
    {
       return true;
    }
    else
    {
       return false;
    }
}

吸气函数

char Item::get_sku() const
{
    return *m_sku;
}

我不确定你想达到什么目的。 但是由于get_sku返回单个char因此查询其长度或以任何方式将其与char*进行比较并没有多大意义。 以下编译,但我不确定您的确切问题是什么。

class Item
{
public:
  bool operator==(char c) const;
  char get_sku() const;
private:
  char * m_sku;
};
bool Item::operator==(char c) const
{
  return this->get_sku() == c;
}
char Item::get_sku() const
{
  return *m_sku;
}

最新更新