1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Nạp chồng toán tử (lập TRÌNH HƯỚNG đối TƯỢNG SLIDE)

19 56 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 19
Dung lượng 324,5 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

• Nạp chồng toán tử là định nghĩa lại các toán tử cho các kiểu dữ liệu người dùng định nghĩa... • Ví dụ:Xây dựng lớp phân số.. Nạp chồng toán tử + để cộng hai phân số...  Hàm nạp chồng

Trang 2

• Các toán tử: +,-,*, /,…

• Các phép toán chỉ thực thi được với các kiểu dữ liệu cơ bản.

• Nạp chồng toán tử là định nghĩa lại các toán tử cho các kiểu dữ liệu người dùng định nghĩa.

Trang 3

Cú pháp:

<kiểu trả về> operator <tên toán tử>([ds tham số])

Định nghĩa ngoài lớp:

<kiểu trả về><tên_lớp>::operator<tên toán tử>([ds tham số])

{

//thân hàm

}

Trang 4

• Ví dụ:

Xây dựng lớp phân số Nạp chồng toán tử + để cộng hai phân số.

Trang 5

class phanso

{

int ts,ms;

public:

phanso operator +(phanso p);

};

phanso phanso::operator+(phanso p)

{

phanso kq;

kq.ts=ts*p.ms+ms*p.ts;

kq.ms=ms*p.ms;

return kq;

}

Trang 6

Cách gọi hàm toán tử:

Dùng như cú pháp thông thường của phép toán

Ví dụ: PS a,b,c; c=a+b;

Dùng như hàm thành phần của đối tượng

Ví dụ:

PS a,b,c;

c=a.operator+(b);

Trang 7

 Chú ý:

như:

Trang 8

 Ví dụ

 Xây dựng lớp số phức.

phức.

 Hàm nạp chồng là hàm thành viên

 Hàm nạp chồng là hàm không thành viên.

Trang 9

Có hai cách xây dựng hàm nạp chồng:

 Chú ý: Khi hàm nạp chồng là hàm không thành viên khi đó không phải là phương thức của lớp, nên nếu định nghĩa ngoài lớp sẽ không có tên của lớp đi kèm

Trang 10

 sp3=sp1*sp2.

Chương trình hiểu là

sp3=sp1.operator*(sp2).

Chú ý: Thứ tự của đối số khi truyền.

Trang 11

Để nạp chồng toán tử << phải có một toán hạng trái của kiểu ostream & (như là cout

trong biểu thức cout<<X), vì thế nó phải là hàm không thành viên.

Cú pháp:

ostream & operator << (ostream & stream, ClassName Object)

Tham số thứ nhất là một tham chiếu đến dòng xuất ostream, tham số thứ hai là đối tượng được chèn vào dòng

Ví dụ:

friend ostream& operator<<(ostream&, SoPhuc s);

• Tương tự với toán tử >>

Trang 12

• Các toán tử: +,-,*,\,>,<

▫ Là hàm thành viên: có một tham số truyền vào.

▫ Hàm không thành viên: Có hai tham số truyền vào (một trong hai tham số này phải

là một đối tượng hoặc là một tham chiếu đến đối tượng của lớp.

Trang 13

• Các toán tử: - ,++, (lấy đảo dấu)

• Nạp chồng toán tử một ngôi:

▫ Hàm thành viên: không có tham số

▫ Hàm không thành viên: có một tham số.

Trang 14

• Toán tử []

• Toán tử ()

• Toán tử chuyển đổi kiểu

• Nạp chồng toán tử new và delete.

(Tài liệu Lê Thị Mỹ Hạnh – trang 90)

Trang 15

class Employee

{

private:

int idNum;

double salary;

public:

Employee(int, double);

double operator+ (Employee);

};

Employee::Employee(int id, double sal)

{

idNum = id;

salary = sal;

}

double Employee::operator+(Employee emp)

{

double total;

total = salary + emp.salary;

return total;

}

Employee clerk(1234, 400.00);

Employee driver(3456, 650.00);

double sum;

sum = clerk.operator+(driver);

cout << "Using operator+() function - Sum is $" << sum << endl;

sum = clerk + driver;

cout << "Adding clerk to driver - Sum is $" << sum << endl;

return 0;

}

15

Trang 16

là hàm bạn

Trang 17

liên tiếp các phép +

Trang 18

tử <<

Trang 19

chồng toán tử >>

Ngày đăng: 29/03/2021, 10:48

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w