Nạp chồng toán tử nhị phân trong C++

Các toán tử nhị phân trong C++ nhận hai tham số. Bạn sử dụng toán tử nhị phân khá thường xuyên, ví dụ như toán tử cộng (+), toán tử trừ (-) và toán tử chia (/).

Ví dụ sau giải thích cách toán tử cộng (+) có thể được nạp chồng trong C++. Tương tự, bạn có thể nạp chồng toán tử trừ (-) và toán tử chia (/).

#include <iostream> using namespace std; class Box { double chieudai; // Chieu dai cua mot box double chieurong; // Chieu rong cua mot box double chieucao; // Chieu cao cua mot box public: double tinhTheTich(void) { return chieudai * chieurong * chieucao; } void setChieuDai( double dai ) { chieudai = dai; } void setChieuRong( double rong ) { chieurong = rong; } void setChieuCao( double cao ) { chieucao = cao; } // Nap chong toan tu + de cong hai doi tuong Box. Box operator+(const Box& b) { Box box; box.chieudai = this->chieudai + b.chieudai; box.chieurong = this->chieurong + b.chieurong; box.chieucao = this->chieucao + b.chieucao; return box; } }; // ham main cua chuong trinh int main( ) { Box Box1; // Khai bao Box1 la cua kieu Box Box Box2; // Khai bao Box2 la cua kieu Box Box Box3; // Khai bao Box3 la cua kieu Box double thetich = 0.0; // Luu giu the tich cua mot box tai day // thong tin chi tiet cua box 1  Box1.setChieuDai(3.0); Box1.setChieuRong(4.0); Box1.setChieuCao(5.0); // thong tin chi tiet cua box 2 Box2.setChieuDai(6.0); Box2.setChieuRong(7.0); Box2.setChieuCao(8.0); // the tich cua box 1 thetich = Box1.tinhTheTich(); cout << "The tich cua Box1 : " << thetich <<endl; // the tich cua box 2 thetich = Box2.tinhTheTich(); cout << "The tich cua Box2 : " << thetich <<endl; // Cong hai doi tuong: Box3 = Box1 + Box2; // the tich cua box 3 thetich = Box3.tinhTheTich(); cout << "The tich cua Box3 : " << thetich <<endl; return 0; }

Biên dịch và chạy chương trình C++ trên sẽ cho kết quả sau:

Nạp chồng toán tử nhị phân trong C++

Theo Tutorialspoint

Bài trước: Nạp chồng toán tử một ngôi trong C++

Bài tiếp: Nạp chồng toán tử quan hệ trong C++

Thứ Tư, 08/08/2018 11:56
31 👨 93