ich die folgende Fehlermeldung erhalten, wenn zum Vergleich zwei sf::RectangleShape
Objekte versuchen:Kein Operator „==“ passt diese Operanden für sf :: RectangleShape
Kein Operator „==“ passt diese Operanden.
Sie können im folgenden Code sehen, dass beide Typen (snake
und addsnakey[0]
) sf::RectangleShape
sind. Warum erhalte ich einen Compilerfehler, wenn ich versuche, zwei sf::RectangleShape
zu vergleichen?
Unten ist der fehlerhafte Code. Ich habe einen Kommentar, wo der Fehler ist:
sf::RectangleShape snake;
//increases size of the snake
sf::RectangleShape addsnake()
{
sf::RectangleShape addsnake1;
addsnake1.setSize(sf::Vector2f(20, 25));
addsnake1.setFillColor(sf::Color::Red);
addsnake1.setPosition(100, 100);
sf::RectangleShape addsnake2;
addsnake2.setSize(sf::Vector2f(20, 30));
addsnake2.setFillColor(sf::Color::Red);
addsnake2.setPosition(100, 100);
sf::RectangleShape addsnake3;
addsnake3.setFillColor(sf::Color::Red);
addsnake3.setSize(sf::Vector2f(20, 35));
addsnake3.setPosition(100, 100);
sf::RectangleShape addsnake4;
addsnake4.setSize(sf::Vector2f(20, 40));
addsnake4.setFillColor(sf::Color::Red);
addsnake4.setPosition(100, 100);
sf::RectangleShape addsnakey[4] = { addsnake1, addsnake2, addsnake3, addsnake4 };
if (snake == snake) //problem here (No operator "==" matches these operands)
return addsnakey[0];
else if (snake == addsnakey[0])
return addsnakey[1];
else if (snake == addsnakey[1])
return addsnakey[2];
else if (snake == addsnakey[2])
return addsnakey[3];
else if (snake == addsnakey[3])
return addsnakey[4];
}
Der Code Unsinn ist sowieso: 'if (a == a)' 'Wie kann snake' nicht gleich' snake'? – John3136
Erwarten Sie, dass die Leute raten, welche einzelne Zeile unter den Code-Seiten, die Sie gepostet haben, zu dem Kompilierungsfehler führt? –
Ich hatte einen Kommentar hinzugefügt. Es ist nicht weit drinnen. Es ist in der ersten Funktion im Code. – Luna