在本教程中,我们将讨论一个程序,以了解如何使用类在C ++中实现向量数量。

向量量既具有幅度又具有方向性。在这里,我们将使用类来实现它们,然后对它们执行基本操作。

示例

#include <cmath> #include <iostream> using namespace std; class Vector {    private:    int x, y, z;    //向量的分量    public:    Vector(int x, int y, int z){       this->x = x;       this->y = y;       this->z = z;    }    Vector operator+(Vector v);    Vector operator-(Vector v);    int operator^(Vector v);    Vector operator*(Vector v);    float magnitude(){       return sqrt(pow(x, 2) + pow(y, 2) + pow(z, 2));    }    friend ostream& operator<<(ostream& out, const Vector& v);    //输出向量 }; //向量加法 Vector Vector::operator+(Vector v){    int x1, y1, z1;    x1 = x + v.x;    y1 = y + v.y;    z1 = z + v.z;    return Vector(x1, y1, z1); } //向量减法 Vector Vector::operator-(Vector v){    int x1, y1, z1;    x1 = x - v.x;    y1 = y - v.y;    z1 = z - v.z;    return Vector(x1, y1, z1); } //向量的点积 int Vector::operator^(Vector v){    int x1, y1, z1;    x1 = x * v.x;    y1 = y * v.y;    z1 = z * v.z;    return (x1 + y1 + z1); } //向量的叉积 Vector Vector::operator*(Vector v){    int x1, y1, z1;    x1 = y * v.z - z * v.y;    y1 = z * v.x - x * v.z;    z1 = x * v.y - y * v.x;    return Vector(x1, y1, z1); } ostream& operator<<(ostream& out, const Vector& v){    out << v.x << "i ";    if (v.y >= 0)       out << "+ ";    out << v.y << "j ";    if (v.z >= 0)       out << "+ ";    out << v.z << "k" << endl;    return out; } int main(){    Vector V1(3, 4, 2), V2(6, 3, 9);    cout << "V1 = " << V1;    cout << "V2 = " << V2;    cout << "V1 + V2 = " << (V1 + V2);    cout << "Dot Product is : " << (V1 ^ V2);    cout << "Cross Product is : " << (V1 * V2);    return 0; }

输出结果

V1 = 3i + 4j + 2k V2 = 6i + 3j + 9k V1 + V2 = 9i + 7j + 11k Dot Product is : 48 Cross Product is : 30i -15j -15k