Vector矢量类的实现

本文是C++ primer plus 6一书中Chapter 11里的实例,用类实现了物理上常用的二维矢量,分别体现了其直角坐标表示和极坐标表示,并重载了+,-,*,<< 运算符。并用一个随机漫步的小例子展示了这个二维矢量的作用。具体看代码:
头文件vector.h

#ifndef VECTOR_H_

#define VECTOR_H_
#include <iostream>

namespace VECTOR
{
    class Vector
    {
    public:
        enum Mode { RECT, POL };  //直角坐标和极坐标2种模式

    private:
        double x;
        double y;
        double mag;
        double ang;
        Mode mode;

        void set_x();
        void set_y();
        void set_mag();
        void set_ang();

    public:
        Vector();
        Vector(double n1, double n2, Mode form = RECT);  //mode决定n1,n2值的含义,默认是直角坐标
        ~Vector();
        void reset(double n1, double n2, Mode form = RECT);

        double xval() const { return x; }
        double yval() const { return y; }
        double magval() const { return mag; }
        double angval() const { return ang; }

        void polar_mode();  //设置模式
        void rect_mode();

        Vector operator+(const Vector & b) const;
        Vector operator-(const Vector & b) const;
        Vector 
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值