2017-04-02 61 views
-2

我有一個接收不可修改字符串地址的運算符。我試圖比較收到的地址的大小與sku項目。如果它們是相同的,我會返回true,如果不是false的話。我得到的c.size(也稱表達必須有一個類類型的錯誤),我不知道爲什麼表達式必須具有類類型(運算符)

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

// getter函數

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

是什麼讓你覺得指針有size()成員函數?爲什麼你要使用字符指針呢? –

+0

老師指定我必須使用char指針 –

+0

找一個更好的老師。如果您需要查找由字符指針指向的C風格字符串的長度,請使用strlen(),但該函數不會用作相等操作 - 「foo」和「bar」具有相同的長度,但不是等於。 –

回答

0

我不是確定你想要達到的目標。但是由於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; 
} 
相關問題