Я использую QTCreator для компиляции моего кода на C ++ и библиотеки <curses.h>
.
Допустим, у нас есть следующее определение класса (.h):
struct coordinateYX
{
int y;
int x;
coordinateYX(long int yPos, long int xPos);
coordinateYX() {}
}
class Rogue
{
private:
long int health;
coordinateYX heroPosition;
public:
long int getHealth();
void setHealth(long int initHealth);
void healthChange(long int vDelta);
coordinateYX getHeroPosition();
void setHeroPosition(coordinateYX hPos);
};
и (.cpp):
coordinateYX::coordinateYX(long int yPos, long int xPos) : y{yPos}, x{xPos} {}
long int Rogue::getHealth() {return health;}
void Rogue::setHealth(long int initHealth) {health = initHealth;}
void Rogue::healthChange(long int vDelta) {health += vDelta;}
coordinateYX Rogue::getHeroPosition() {return heroPosition;}
void Rogue::setHeroPosition(coordinateYX hPos)
{
heroPosition.y = hPos.y;
heroPosition.x = hPos.x;
}
В моем main.cpp я пытаюсь сохранить текущую позицию курсора в экземпляре Rogue:
Rogue Hero;
getyx(stdscr, Hero.getHeroPosition().y, Hero.getHeroPosition().x);
Но я всегда получаю сообщение об ошибке:
using temporary as lvalue [-fpermissive]
Это также показано ниже как часть ошибки, которая есть в <curses.h>
файле
#define getyx(w, y, x) (y = getcury(w), x = getcurx(w))
Хотя я могу просто сохранить эти значения в другой структуре, инициализированной в main.cpp
, как я могу сохранить позиции x и y непосредственно в членах данных класса?
Спасибо.