zoukankan      html  css  js  c++  java
  • Point2和Point3类定义

    支持以下图中的运算

    类声明:

    class Point2 {
    public:
    	Point2();
    	~Point2();
    	Point2(ldouble a);
    	Point2(ldouble a, ldouble b);
    	Point2(const Point2& p);
    	Point2 operator+(const Point2& p) const;
    	Point2& operator+=(const Point2& p);
    	Point2 operator-(const Point2& p) const;
    	Point2& operator-=(const Point2& p);
    	Point2 operator*(ldouble a) const;
    	Point2& operator*=(ldouble a);
    	Point2 operator/(ldouble f) const;
    	Point2& operator/=(ldouble f);
    	Point2 operator-() const;
    	Point2& operator=(const Point2& p);
    	bool operator==(const Point2& p) const;
    	bool operator!=(const Point2& p) const;
    	friend ldouble distance(const Point2& p1, const Point2& p2);
    	friend ldouble distance_squared(const Point2& p1, const Point2& p2);
    	friend Point2 operator*(ldouble a, const Point2& p);
    	friend std::ostream& operator<<(std::ostream& os, const Point2& p);
    	friend std::istream& operator>>(std::istream& is, Point2& p);
    	ldouble x, y;
    };
    
    class Point3 {
    public:
    	Point3();
    	~Point3();
    	Point3(ldouble a);
    	Point3(ldouble a, ldouble b, ldouble c);
    	Point3(const Point2& p);
    	Point3(const Point3& p);
    	Point3 operator+(const Vector3& v) const;
    	Point3& operator+=(const Vector3& v);
    	Vector3 operator-(const Point3& p) const;
    	Point3 operator-(const Vector3& v) const;
    	Point3& operator-=(const Vector3& v);
    	Point3 operator*(ldouble a) const;
    	Point3& operator*=(ldouble a);
    	Point3 operator/(ldouble f) const;
    	Point3& operator/=(ldouble f);
    	Point3 operator-() const;
    	Point3& operator=(const Point3& p);
    	bool operator==(const Point3& p) const;
    	bool operator!=(const Point3& p) const;
    	friend ldouble distance(const Point3& p1, const Point3& p2);
    	friend ldouble distance_squared(const Point3& p1, const Point3& p2);
    	friend Point3 operator*(ldouble a, const Point3& p);
    	friend std::ostream& operator<<(std::ostream& os, const Point3& p);
    	friend std::istream& operator>>(std::istream& is, Point3& p);
    	ldouble x, y, z;
    };
    

      

    实现还是作为练习,图中已经写明了运算了。

  • 相关阅读:
    定位CPU占用高的线程并打印其堆栈信息
    单生产者和单消费者共同操作同一个消息队列需要加锁吗
    cmake多目录,生成so的模板
    【秒懂音视频开发】25_H.264解码实战
    【秒懂音视频开发】24_H.264编码实战
    【秒懂音视频开发】23_H.264编码
    【秒懂音视频开发】22_显示YUV图片
    【秒懂音视频开发】21_显示BMP图片
    【秒懂音视频开发】20_视频录制02_编程
    【秒懂音视频开发】19_视频录制01_命令行
  • 原文地址:https://www.cnblogs.com/dalgleish/p/12602716.html
Copyright © 2011-2022 走看看