Trong hướng dẫn này, chúng ta sẽ thảo luận về một chương trình để hiểu cách sử dụng lớp để triển khai các đại lượng vectơ trong C ++.
Đại lượng vectơ là đại lượng có cả độ lớn và hướng. Ở đây, chúng tôi sẽ triển khai chúng bằng cách sử dụng các lớp và sau đó thực hiện các thao tác cơ bản trên chúng.
Ví dụ
#include <cmath> #include <iostream> using namespace std; class Vector { private: int x, y, z; //components of the Vector 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); //outputting the vector }; // Addition of vectors 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); } // Subtraction of vectors 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); } // Dot product of vectors 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); } // Cross product of vectors 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; }
Đầu ra
V1 = 3i + 4j + 2k V2 = 6i + 3j + 9k V1 + V2 = 9i + 7j + 11k Dot Product is : 48 Cross Product is : 30i -15j -15k