C_point_1D型とint,double,またはC_point_1D型の加減と代入のつもり
C_opint_1Dは一次元
class C_point_1D{
private:
double x;
public:
C_point_1D(double = 0);
virtual ~C_point_1D(){}
void set(const double = 0 );
double tell()const;
C_point_1D operator+(const C_point_1D& p);
C_point_1D operator+(const double& p);
C_point_1D operator+(const int& p);
C_point_1D operator-(const C_point_1D& p);
C_point_1D operator-(const double& p);
C_point_1D operator-(const int& p);
C_point_1D operator=(const C_point_1D& p);
C_point_1D operator=(const double& p);
C_point_1D operator=(const int& p);
};
本当はC_point_1D型のxyをprivateにして、その関数もこのクラスの関数のようにすべきかもしれない。今回は面倒なのと新たに関数を定義するメリットがほとんどないと思ったのでしていない。
class C_point_2D{
private:
public:
C_point_2D(const double,const double);
C_point_1D x,y;
C_point_2D operator+(const C_point_2D& p);
C_point_2D operator-(const C_point_2D& p);
C_point_2D operator=(const C_point_2D& p);
void operator()(const double = 0,const double = 0);
};
class C_point{
private:
double x;
double y;
public:
C_point(double = 0,double = 0);
virtual ~C_point(){}
void set_x(const double = 0 );
void set_y(const double = 0 );
void add_x(const double );
void add_y(const double );
double tell_x()const;
double tell_y()const;
C_point operator+(const C_point& p);
C_point operator-(const C_point& p);
C_point operator=(const C_point& p);
void operator()(const double = 0,const double = 0);
};
とりあえず、二次元平面のどちらかを使いたいがどちらを使うか・・・ 最後のものはx+n,y+nと書けない上、2つの似た要素(xとy)を別々に扱うからどうなんだろうとは思う。最初のものは使えば楽でもその実装を見て、今後自分は混乱しないのか、演算子同士衝突しないか・・・ とりあえず後者でいきますか。