我该如何解决运算符重载?

问题描述 投票:-2回答:1

我正在尝试学习C ++,并且想解决这两个问题。

我如何用运算符+将两个向量相加?如何与操作员一起制作标量产品*我想在课外写它们

class Vector{
    double x;
    double y;

public:
    Vector() : x(0), y(0){};
    Vector(double x, double y);
    double getX() const;
    Vector operator+(Vector arg);
    Vector operator*(double len);

};


Vector::Vector(double x1=1, double y1=2)
:x(x1),y(y1){};


double Vector::getX() const {return x;}


c++ vector sum operator-overloading add
1个回答
0
投票

以下是实现该类并对其进行测试的代码请注意,我添加了功能displayVector()以显示对象

    #include<iostream>

 class Vector{
    double x;
    double y;

public:
    Vector() : x(0), y(0){};
    Vector(double x, double y);
    double getX() const;
    double getY() const;
    friend Vector operator+(const Vector& arg1,const Vector& arg2);
    friend Vector operator*(const double& len,const Vector& arg);
    void displayVector()const;

};

double Vector::getX() const {return x;}
double Vector::getY() const {return y;}
void Vector::displayVector() const {
    std::cout<<"\nX compis: "<<x<<"\tY comp is: "<<y<<std::endl;
}


Vector::Vector(double x1=1, double y1=2):x(x1),y(y1){}

Vector operator+(const Vector& arg1, const Vector& arg2){

    return Vector(arg1.getX()+arg2.getX(),arg1.getY()+arg2.getY());
}

Vector operator*(const double& len, const Vector& arg){

    return Vector(len*arg.getX(),len*arg.getY());
}

int main(){

    Vector v1{1,2}, v2{2,3};
    v1.displayVector();
    v2.displayVector();
    (v1+v2).displayVector();
    (2*v1).displayVector();

    return 0;
}
© www.soinside.com 2019 - 2024. All rights reserved.