Chuong 05 overload toan tu va ham

84 1 0
Chuong 05   overload toan tu va ham

Đ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

OVERLOAD TOÁN TỬ VÀ HÀM Khoa Công nghệ phần mềm Nội dung  Giới thiệu  Các toán tử của C++  Các toán tử overload được  Cú pháp Operator Overloading  Chuyển kiểu  Sự nhập nhằng  Phép toán [.]

OVERLOAD TỐN TỬ  VÀ HÀM Khoa Cơng nghệ phần mềm Nội dung  Giới thiệu  Các toán tử C++  Các toán tử overload  Cú pháp Operator Overloading  Chuyển kiểu  Sự nhập nhằng  Phép toán >  Phép toán lấy phần tử mảng: [ ]  Phép toán gọi hàm: ()  Phép toán tăng giảm: ++ -09/03/2016 Lập trình hướng đối tượng Giới thiệu Xét ví dụ sau: Giả sử có lớp PhanSo cung cấp thao tác Set, Cong, Tru, Nhan, Chia PhanSo A, B, C, D, E; C.Set(A.Cong(B)); E.Set(D.Cong(C)); E = A + B  + D   ??? 09/03/2016 Lập trình hướng đối tượng Giới thiệu Các toán tử cho phép ta sử dụng cú pháp toán học kiểu liệu C++ thay gọi hàm (bản chất gọi hàm)  Ví dụ thay a.set(b.cong(c)); a = b + c;  Gần với kiểu trình bày mà người quen dùng (mang tính tự nhiên)  Đơn giản hóa mã chương trình PhanSo A, B; cin>>A;  //A.Nhap(); cin>>B;  //B.Nhap(); 09/03/2016 Lập trình hướng đối tượng Giới thiệu  Một lớp liệu phương thức cịn có phép tốn giúp người lập trình dễ dàng thể câu lệnh chương trình  Tuy nhiên, cài đặt phép toán cho phép tạo phép toán sở ký hiệu phép tốn có, khơng quyền cài đặt phép tốn sự cài đặt thêm phép toán nạp chồng phép toán (operator overloading)  Đối với kiểu liệu người dùng: C++ cho phép định nghĩa toán tử kiểu liệu người dùng overload 09/03/2016 Lập trình hướng đối tượng Operator overload Một tốn tử dùng cho nhiều kiểu liệu Như vậy, ta tạo kiểu liệu đóng gói hồn chỉnh (fully encapsulated) để kết hợp với ngơn ngữ kiểu liệu cài sẵn Ví dụ: SoPhuc z(1,3), z1(2,3.4), z2(5.1,4); z = z1 + z2; z = z1 + z2*z1 + SoPhuc(3,1); 09/03/2016 Lập trình hướng đối tượng Các toán tử C++ Các loại toán tử: 09/03/2016 Lập trình hướng đối tượng Các tốn tử C++ Một số tốn tử đơn dùng làm toán tử trước toán tử sau Ví dụ phép tăng (++), phép giảm ( ) Một số tốn tử dùng làm tốn tử đơn tốn tử đơi: * Tốn tử mục ("[…]") tốn tử đơi Các từ khố "new" "delete" coi toán tử định nghĩa lại 09/03/2016 Lập trình hướng đối tượng Các toán tử overload Các toán tử overload: + ‐ * / % ^ & | ~ ! = < > += ‐= *= /= %= ^= &= |= > >>= [ ] () new delete new[ ] 09/03/2016 delete[ ] Lập trình hướng đối tượng Cú pháp Operator Overloading Sử dụng tên hàm “operator@” cho tốn tử “@”  Ví dụ: operator+ Số lượng tham số khai báo hàm phụ thuộc hai yếu tố:  Toán tử toán tử đơn hay đơi  Tốn tử khai báo phương thức toàn cục hay phương thức lớp 2/3 + – 6/5 = ? 09/03/2016 Lập trình hướng đối tượng 10 ... return PhanSo (tu* b.mau + mau*b .tu, mau*b.mau); } PhanSo PhanSo::operator + (PhanSo b) const { return PhanSo (tu* b.mau + mau*b .tu, mau*b.mau); } bool PhanSo::operator == (PhanSo b) const { return... PhanSo::UocLuoc(){ long usc = USCLN (tu, mau); tu /= usc; mau /= usc; if (mau < 0) mau = -mau, tu = -tu; if (tu == 0) mau = 1; } void PhanSo::Set(long t, long m) { if (m) { tu = t; mau = m; UocLuoc();... b) const { return tu* b.mau == mau*b .tu; } void PhanSo::Xuat() const { cout

Ngày đăng: 25/02/2023, 15:20

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan