class crood{
public:
 int& X(){return _x;}
 int& Y(){return _y;}
 int X()const{return _x;}
 int Y()const{return _y;}
private:
 int _x,_y;
};

crood tmp;
tmp.X()=200;
tmp.Y()=-100;

int tmpx=tmp.X();//tmpx=200
上のような書き方でやればgetXとかsetXとか書かなくてすむけど単純な代入しか出来ないですよね?

tmp.Y()=-150;

とかしたときに

tmp.Y()が0になるように出来ませんか?
※マイナスの値が代入された時は0を代入する。