How to check this condition with enums - C++ -
class direction
class direction { public: enum value { up, right, down, left, stay }; }; class point
#include "direction.h" class point { int x , y; public: point() { x=0; y=0; }; point(int x1 , int y1) : x(x1) , y(y1) {}; void setx(int newx) { x = newx; }; void sety(int newy) { y = newy; }; int getx() { return x; } int gety() { return y; } void move(direction d) { if(d==up); }; the problem if(d==up) don't understand how can check condition receive error checking this.
any ideas? appreciated.
up declared inside class direction, outside scope should write direction::up refer it:
if (...something... == direction::up) ... your direction class creates value enumeration type, doesn't have data members yet, it's not clear in d might want compare direction::up. add data member inserting line before final }; in class direction:
value value_; then comparison become:
if (d.value_ == direction::up) ... all said, if class direction not going contain other enum, might consider getting rid of class part altogether , declaring enum alone:
enum direction { up, ... }; then comparison simplify to:
if (d == up) ...
Comments
Post a Comment