我一直在努力解决这个问题。我遇到了问题,我不太清楚为什么。我已经重载了我正在使用的结构的比较运算符,但它们似乎没有返回正确的结果。它没有任何模式。就像我将两个结构与相应的zLevels(zLevel是我正在比较的属性)的12和5进行比较一样,它会说12的结构小于5的结构。但是,它也表示具有值的结构。 11的值小于值为5的值。当使用==运算符时,它坚持没有比较的项具有相同的zLevel。
我的头文件如下
#include <SFML/Graphics.hpp>
#ifndef _LBMOON_DRAWABLE_H
#define _LBMOON_DRAWABLE_H
namespace LBMoon
{
struct drawable
{
int id;
float zLevel;
sf::Sprite render;
inline bool operator<(const drawable& other);
inline bool operator>(const drawable& other);
inline bool operator==(const drawable& other);
inline bool operator!=(const drawable& other);
};
}
#endif
和我的cpp文件如下
#include "drawable.h"
namespace LBMoon
{
inline bool drawable::operator<(const drawable& other) {
return zLevel < other.zLevel;
}
inline bool drawable::operator>(const drawable& other) {
return zLevel > other.zLevel;
}
inline bool drawable::operator==(const drawable& other) {
return zLevel == other.zLevel;
}
inline bool drawable::operator!=(const drawable& other) {
return zLevel != other.zLevel;
}
}
感谢您阅读本文。我真的不知道发生了什么,并希望得到任何帮助我可以获得x.x