Nạp chồng toán tử một ngôi trong C++

Nạp chồng toán tử một ngôi trong C++ là gì? Sử dụng như thế nào? Mời bạn đọc cùng eLib.VN tham khảo bài viết dưới đây của eLib.VN để biết thêm thông tin về Nạp chồng toán tử một ngôi trong C++.

Nạp chồng toán tử một ngôi trong C++

1. Nạp chồng toán tử một ngôi trong C++

Toán tử một ngôi (unary) trong C++ hoạt động trên một toán hạng đơn và dưới đây là một số ví dụ về toán tử một ngôi:

  • Nạp chồng toán tử tăng (++) và toán tử giảm (--) trong C++.

  • Toán tử một ngôi (-) trong C++

  • Toán tử logic phủ định (!) trong C++

Toán tử một ngôi hoạt động trên đối tượng mà chúng được gọi, và thường thì toán tử này xuất hiện bên trái đối tượng, dạng như: !obj, -obj, và ++obj, nhưng đôi khi chúng có thể sử dụng như là hậu tố giống như obj++ hoặc obj--.

2. Ví dụ nạp chồng toán tử một ngôi trong C++

Ví dụ sau giải thích cách toán tử (-) có thể được nạp chồng với sự sử dụng tiền tố cũng như hậu tố.

#include <iostream>
using namespace std;

class KhoangCach
{
private:
    int met;
    int centimet;
public:
    // khai bao cac constructor
    KhoangCach() {
        met = 0;
        centimet = 0;
    }
    KhoangCach(int m, int c) {
        met = m;
        centimet = c;
    }
    // phuong thuc de hien thi khoang cach
    void hienthiKC()
    {
        cout << "Khoang cach bang m la: " << met << endl;
        cout << "Khoang cach bang cm la: " << centimet << endl;
        cout << "\n\n================================\n\n" << endl;
    }
    // nap chong toan tu (-)
    KhoangCach operator- ()
    {
        met = -met;
        centimet = -centimet;
        return KhoangCach(met, centimet);
    }
};

int main()
{
    KhoangCach K1(10, 50), K2(-12, 15);
    -K1;               // ap dung su phu dinh
    K1.hienthiKC();    // hien thi K1
    -K2;               // ap dung su phu dinh
    K2.hienthiKC();    // hien thi K2
    return 0;
}

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

Trên đây là bài viết của eLib.VN về Nạp chồng toán tử một ngôi trong C++. Hy vọng qua bài này bạn sẽ hiểu và vận dụng trong quá trình học tập và làm việc với C++. Chúc các bạn thành công!

Ngày:29/10/2020 Chia sẻ bởi:Minh Ngoan

CÓ THỂ BẠN QUAN TÂM