У меня есть то, на что я надеюсь, это быстрый вопрос о некотором коде, который я создаю. В основном я хочу сравнить переменные среди двух экземпляров класса (goldfish), чтобы увидеть, внутри территории другого. они оба имеют кластеры территории, которые, в свою очередь, используют кластер точек, состоящий из точки данных x и y.Сравнение переменных в двух экземплярах класса
Теперь мне было интересно узнать, почему ниже не работает, пожалуйста:
(этот бит кода сравнивает два момента: а & Ь, каждый с двумя точками, северо-восток (НЭ) и юго-запад (ЕО) и их х и у участков) , если ((а-> x_ne < = b-> x_ne & & а-> y_ne < = b-> пе) & & (а-> x_sw => b-> x_sw & & a-> y_sw => b-> sw)) { return true; } else return false;
Я могу думать о работе (например, имея метод получения местоположения) и использовать функцию в основном тесте для сравнения, но мне любопытно узнать - как начинающий программист на C++ - почему выше, или аналогичная реализация не работает.
а также, что было бы ЧИСТОЕ и изящным способом выполнить вышеуказанное? есть функция друга, возможно?
большое спасибо
редактировать: добавлены некоторые комментарии к (надеюсь сделать переменные более четкие)
// class point {
// public:
// float x;
// float y;
// point(float x_in, float y_in) { //the 2 arg constructor
// x = x_in;
// y = y_in;
// }
// };
// class territory {
// private:
// point ne, sw;
// public:
// territory(float x_ne, float y_ne, float x_sw, float y_sw)
// : ne(x_ne, y_ne), sw(x_sw,y_sw) {
// }
// bool contain_check(territory a, territory b) {
// //checks if a is contained in b (in THAT order!)
// if ((a->x_ne <= b->x_ne && a->y_ne <= b-> ne) &&
// (a->x_sw => b->x_sw && a->y_sw => b-> sw)) {
// return true;
// } else return false;
^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
// };
// class goldfish {
// protected:
// float size;
// point pos;
// territory terr;
// public:
// goldfish(float x, float y) : pos(x,y), terr(x-1,y-1,x+1,y+1) { //constructor
// size = 2.3;
// }
// void retreat() { //what happens in the case of loss in attack
// /*
// if(goldfish.size[1] - goldfish.size[2] <= 1 && goldfish.size[1] - goldfish.size[2] > 0) {
// size = size - 0.2;
// }
// */
// }
// void triumph() {
// }
// void attack() {
// }
// // void goldfish()
// };
Описательные имена переменных приятны :). Мы больше не ограничены в персонажах, я прекратил читать, когда увидел a-> x_ne –
Почему все закомментировано? – GManNickG
Опубликуйте свои ошибки в компиляторе, это очень поможет. – Jonas