Bài giảng Ngôn ngữ lập trình C - Bài 5: Nạp chồng toán tử

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ố.

pptx19 trang | Chia sẻ: dntpro1256 | Lượt xem: 683 | Lượt tải: 0download
Bạn đang xem nội dung tài liệu Bài giảng Ngôn ngữ lập trình C - Bài 5: Nạp chồng toán tử, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
Bài 5:Nạp chồng toán tửNạp chồng toán tử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.Nạp chồng toán tửCú pháp:operator([ds tham số])Định nghĩa ngoài lớp:::operator([ds tham số]){//thân hàm}Nạp chồng toán tửVí dụ: Xây dựng lớp phân số. Nạp chồng toán tử + để cộng hai phân số.Nạp chồng toán tử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;} Nạp chồng toán tử6/20Cách gọi hàm toán tử:Dùng như cú pháp thông thường của phép toánVí dụ: PS a,b,c; c=a+b;Dùng như hàm thành phần của đối tượngVí dụ:PS a,b,c;c=a.operator+(b);Nạp chồng toán tửChú ý:Nạp chồng toán tử không làm thay đổi thứ tự ưu tiên của các toán tử.Phần lớn các toán tử có thể được nạp chồng. Một số toán tử không nạp chồng như: Nạp chồng toán tửVí dụXây dựng lớp số phức.Nạp chồng toán tử nhân số phức với một số thực, nhân số phức với một số phức.Thực hiện theo hai cách:Hàm nạp chồng là hàm thành viênHàm nạp chồng là hàm không thành viên.Nạp chồng toán tửCó hai cách xây dựng hàm nạp chồng:Là thành viên: là phương thức.Không thành viên: Thường là hàm bạn.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.Nạp chồng toán tử sp3=sp1*sp2.Chương trình hiểu làsp3=sp1.operator*(sp2).Chú ý: Thứ tự của đối số khi truyền.Nạp chồng toán tử Nhập / XuấtĐể nạp chồng toán tử >.Nạp chồng toán tử hai ngôiCác toán tử: +,-,*,\,>,using namespace std;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;}int main(){Employee clerk(1234, 400.00);Employee driver(3456, 650.00);double sum;sum = clerk.operator+(driver);cout >

Các file đính kèm theo tài liệu này:

  • pptxbai5_napchongtoantu_5294_1877388.pptx
Tài liệu liên quan