Ich habe einen Operator, der die Adresse einer nicht änderbaren Zeichenkette erhält. Ich versuche, die Größe der empfangenen Adresse mit dem Artikel sku zu vergleichen. Wenn sie gleich sind, gebe ich wahr, wenn nicht falsch zurück. Ich erhalte eine Fehlermeldung auf c.size(), die der Ausdruck sagt müssen einen Klassentyp haben, und ich bin mir nicht sicher, warumAusdruck Muss einen Klassentyp (Operator) haben
char Item::operator==(const char* c)
{
if (this->get_sku.size() == c.size()) //Error
{
return true;
}
else
{
return false;
}
}
// Getter Funktion
char Item::get_sku() const
{
return *m_sku;
}
Woran denken Sie, dass Zeiger eine size() -Memberfunktion haben? Und warum arbeitest du überhaupt mit Charakterzeigern? –
Der Lehrer hat angegeben, dass ich Char-Zeiger verwenden muss –
Holen Sie sich einen besseren Lehrer. Wenn Sie die Länge einer C-artigen Zeichenfolge suchen müssen, auf die ein Zeichenzeiger zeigt, verwenden Sie strlen(), aber das funktioniert nicht als Gleichheitsoperation - "foo" und "bar" haben die gleiche Länge, sind aber nicht gleich. –