Thắc mắc về class trong C++

Chào mọi người em đang học về class trong C++ và em đang thắc mắc về một vài dòng code em tìm được trên mạng về phân số

#include <iostream>
using namespace std;
 
class PhanSo
{
private:
    int tu, mau;
public:
    void set(int t, int m)
    {
        tu = t;
        mau = m;
    }
 
    void nhap()
    {
        cout << "Nhap lan luot tu va mau cua phan so : ";
        cin >> tu >> mau;
    }
    void xuat()
    {
        cout << tu << "/" << mau << endl;
    }
    void cong(PhanSo a)
    {
        tu = tu*a.mau + mau*a.tu;
        mau = mau*a.mau;
    }
    void tru(PhanSo a)
    {
        tu = tu*a.mau - mau*a.tu;
        mau = mau*a.mau;
    }
    void nhan(PhanSo a)
    {
        tu = tu*a.tu;
        mau = mau*a.mau;
    }
    void chia(PhanSo a)
    {
        tu = tu*a.mau;
        mau = mau*a.tu;
    }
};
 
int main()
{
    PhanSo a, b, c;
    a.nhap();
    b.nhap();
    //////////////////
    cout << "Cong = ";
    c = a;
    c.cong(b);
    c.xuat();
    //////////////////
    cout << "Tru = ";
    c = a;
    c.tru(b);
    c.xuat();
    //////////////////
    cout << "Nhan = ";
    c = a;
    c.nhan(b);
    c.xuat();
    //////////////////
    cout << "chia = ";
    c = a;
    c.chia(b);
    c.xuat();
 
    system("pause");
    return 0;
}

Em muốn hỏi:
1.Hàm set kia để làm gì ạ mà em k thấy dùng
2.Hàm cộng, trừ, nhân, chia có truyền vào đối Phanso a thì nó có giống cái khai báo Phanso a trong hàm main không ạ hay 2 cái là một ạ?
3. Ai giải thích em dòng này ạ

cout << "Cong = ";
        c = a;
        c.cong(b);
        c.xuat();

1.Hàm set kia để làm gì ạ mà em k thấy dùng

Theo thân hàm thì dùng để set giá trị cho tử số và mẫu số.

2.Hàm cộng, trừ, nhân, chia có truyền vào đối Phanso a thì nó có giống cái khai báo Phanso a trong hàm main không ạ hay 2 cái là một ạ?

Tên đối số của hàm không liên quan đế phần mình khai báo ở hàm main, ví dụ ở đó PhanSo abcxyz gì thì ý nghĩa có nó chỉ là một phân số được truyền vào hàm.

  1. Ai giải thích em dòng này ạ:

cout << "Cong = "; --> in ra chuỗi "Cong =
c = a; --> Gán phân số c = a
c.cong(b); --> Gọi hàm cộng phân số với đối số được truyền vào là PhanSo b
c.xuat(); --> Gọi hàm xuat() từ đối tượng PhanSo c

2 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?