Bài giảng Lập trình hướng đối tượng - Chương 5: Overload toán tử và hàm
Số trang: 84
Loại file: pdf
Dung lượng: 676.50 KB
Lượt xem: 9
Lượt tải: 0
Xem trước 9 trang đầu tiên của tài liệu này:
Thông tin tài liệu:
Bài giảng "Lập trình hướng đối tượng - Chương 5: Overload toán tử và hàm" thông tin đến các bạn các nội dung 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 >; 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 và giảm: ++ và --.
Nội dung trích xuất từ tài liệu:
Bài giảng Lập trình hướng đối tượng - Chương 5: Overload toán tử và hàmOVERLOADTOÁNTỬ VÀHÀM Khoa Công nghệ phần mềm CuuDuongThanCong.com https://fb.com/tailieudientucntt 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 > 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 và giảm: ++ và --09/03/2016 Lập trình hướng đối tượng 2 CuuDuongThanCong.com https://fb.com/tailieudientucntt Giới thiệuXét ví dụ sau: Giả sử có lớp PhanSo cung cấp các 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 3 CuuDuongThanCong.com https://fb.com/tailieudientucntt Giới thiệuCác toán tử cho phép ta sử dụng cú pháp toán học đối với các kiểu dữ liệu của C++ thay vì gọi hàm (bản chất vẫn là gọi hàm). Ví dụ thay a.set(b.cong(c)); bằng a = b + c; Gần với kiểu trình bày mà con người quen dùng (mang tính tự nhiên) Đơn giản hóa mã chương trình PhanSoA,B; cin>>A;//A.Nhap(); cin>>B;//B.Nhap();09/03/2016 Lập trình hướng đối tượng 4 CuuDuongThanCong.com https://fb.com/tailieudientucntt Giới thiệu Một lớp ngoài dữ liệu và các phương thức còn có các phép toán giúp người lập trình dễ dàng thể hiện các câu lệnh trong chương trình. Tuy nhiên, sự cài đặt phép toán chỉ cho phép tạo ra phép toán mới trên cơ sở ký hiệu phép toán đã có, không được quyền cài đặt các phép toán mới sự cài đặt thêm phép toán là sự nạp chồng phép toán (operator overloading) Đối với các kiểu dữ liệu người dùng: C++ cho phép định nghĩa các toán tử trên các kiểu dữ liệu người dùng overload09/03/2016 Lập trình hướng đối tượng 5 CuuDuongThanCong.com https://fb.com/tailieudientucntt Operator overloadMột toán tử có thể dùng cho nhiều kiểu dữ liệu.Như vậy, ta có thể tạo các kiểu dữ liệu đóng gói hoàn chỉnh (fully encapsulated) để kết hợp với ngôn ngữ như các kiểu dữ 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 6 CuuDuongThanCong.com https://fb.com/tailieudientucntt Các toán tử của C++Các loại toán tử:09/03/2016 Lập trình hướng đối tượng 7 CuuDuongThanCong.com https://fb.com/tailieudientucntt Các toán tử của C++Một số toán tử đơn có thể được dùng làm cả toán tử trước và toán tử sau. Ví dụ phép tăng (++), phép giảm (--)Một số toán tử có thể được dùng làm cả toán tử đơn và toán tử đôi: *Toán tử chỉ mục ([…]) là toán tử đôiCác từ khoá new và delete cũng được coi là toán tử và có thể được định nghĩa lại09/03/2016 Lập trình hướng đối tượng 8 CuuDuongThanCong.com https://fb.com/tailieudientucntt Các toán tử overload đượcCác toán tử có thể overload: + ‐ * / % ^ & | ~ ! = < > += ‐= *= /= %= ^= &= |= > >>= [] () new delete new[] delete[]09/03/2016 Lập trình hướng đối tượng 9 CuuDuongThanCong.com https://fb.com/tailieudientucnttCú pháp Operator OverloadingSử dụng tên hàm là “operator@” cho toán tử “@”. Ví dụ: operator+Số lượng tham số tại khai báo hàm phụ thuộc hai yếu tố: Toán tử là toán tử đơn hay đôi Toán tử được khai báo là phương thức toàn cục hay phương thức của lớp 2/3 + 5 – 6/5 = ?09/03/2016 Lập trình hướng đối tượng 10 CuuDuongThanCong.com https://fb.com/tailieudientucntt Cú pháp Operator Overloadingaa@bb aa.operator@(bb) hoặc operator@(aa,bb)@aa aa.operator@() hoặc operator@(aa)aa@ aa.operator@(int) hoặc operator@(aa,int) Phương thức của lớp Hàm toàn cục 09/03/2016 Lập trình hướng đối tượng 11 CuuDuongThanCong.com https://fb.com/tailieudientucntt Ví dụ - Lớp PhanSolong USCLN(long x, long y){ long r; x = abs(x); y = abs(y); if (x == 0 || y == 0) return 1; while ((r = x % y) != 0){ x = y; y = r; } return y;}0 ...
Nội dung trích xuất từ tài liệu:
Bài giảng Lập trình hướng đối tượng - Chương 5: Overload toán tử và hàmOVERLOADTOÁNTỬ VÀHÀM Khoa Công nghệ phần mềm CuuDuongThanCong.com https://fb.com/tailieudientucntt 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 > 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 và giảm: ++ và --09/03/2016 Lập trình hướng đối tượng 2 CuuDuongThanCong.com https://fb.com/tailieudientucntt Giới thiệuXét ví dụ sau: Giả sử có lớp PhanSo cung cấp các 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 3 CuuDuongThanCong.com https://fb.com/tailieudientucntt Giới thiệuCác toán tử cho phép ta sử dụng cú pháp toán học đối với các kiểu dữ liệu của C++ thay vì gọi hàm (bản chất vẫn là gọi hàm). Ví dụ thay a.set(b.cong(c)); bằng a = b + c; Gần với kiểu trình bày mà con người quen dùng (mang tính tự nhiên) Đơn giản hóa mã chương trình PhanSoA,B; cin>>A;//A.Nhap(); cin>>B;//B.Nhap();09/03/2016 Lập trình hướng đối tượng 4 CuuDuongThanCong.com https://fb.com/tailieudientucntt Giới thiệu Một lớp ngoài dữ liệu và các phương thức còn có các phép toán giúp người lập trình dễ dàng thể hiện các câu lệnh trong chương trình. Tuy nhiên, sự cài đặt phép toán chỉ cho phép tạo ra phép toán mới trên cơ sở ký hiệu phép toán đã có, không được quyền cài đặt các phép toán mới sự cài đặt thêm phép toán là sự nạp chồng phép toán (operator overloading) Đối với các kiểu dữ liệu người dùng: C++ cho phép định nghĩa các toán tử trên các kiểu dữ liệu người dùng overload09/03/2016 Lập trình hướng đối tượng 5 CuuDuongThanCong.com https://fb.com/tailieudientucntt Operator overloadMột toán tử có thể dùng cho nhiều kiểu dữ liệu.Như vậy, ta có thể tạo các kiểu dữ liệu đóng gói hoàn chỉnh (fully encapsulated) để kết hợp với ngôn ngữ như các kiểu dữ 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 6 CuuDuongThanCong.com https://fb.com/tailieudientucntt Các toán tử của C++Các loại toán tử:09/03/2016 Lập trình hướng đối tượng 7 CuuDuongThanCong.com https://fb.com/tailieudientucntt Các toán tử của C++Một số toán tử đơn có thể được dùng làm cả toán tử trước và toán tử sau. Ví dụ phép tăng (++), phép giảm (--)Một số toán tử có thể được dùng làm cả toán tử đơn và toán tử đôi: *Toán tử chỉ mục ([…]) là toán tử đôiCác từ khoá new và delete cũng được coi là toán tử và có thể được định nghĩa lại09/03/2016 Lập trình hướng đối tượng 8 CuuDuongThanCong.com https://fb.com/tailieudientucntt Các toán tử overload đượcCác toán tử có thể overload: + ‐ * / % ^ & | ~ ! = < > += ‐= *= /= %= ^= &= |= > >>= [] () new delete new[] delete[]09/03/2016 Lập trình hướng đối tượng 9 CuuDuongThanCong.com https://fb.com/tailieudientucnttCú pháp Operator OverloadingSử dụng tên hàm là “operator@” cho toán tử “@”. Ví dụ: operator+Số lượng tham số tại khai báo hàm phụ thuộc hai yếu tố: Toán tử là toán tử đơn hay đôi Toán tử được khai báo là phương thức toàn cục hay phương thức của lớp 2/3 + 5 – 6/5 = ?09/03/2016 Lập trình hướng đối tượng 10 CuuDuongThanCong.com https://fb.com/tailieudientucntt Cú pháp Operator Overloadingaa@bb aa.operator@(bb) hoặc operator@(aa,bb)@aa aa.operator@() hoặc operator@(aa)aa@ aa.operator@(int) hoặc operator@(aa,int) Phương thức của lớp Hàm toàn cục 09/03/2016 Lập trình hướng đối tượng 11 CuuDuongThanCong.com https://fb.com/tailieudientucntt Ví dụ - Lớp PhanSolong USCLN(long x, long y){ long r; x = abs(x); y = abs(y); if (x == 0 || y == 0) return 1; while ((r = x % y) != 0){ x = y; y = r; } return y;}0 ...
Tìm kiếm theo từ khóa liên quan:
Lập trình hướng đối tượng Overload toán tử và hàm Overload toán tử Phép toán gọi hàm Cú pháp Operator OverloadingGợi ý tài liệu liên quan:
-
Giáo trình Lập trình hướng đối tượng: Phần 2
154 trang 276 0 0 -
101 trang 200 1 0
-
14 trang 134 0 0
-
Giáo trình lập trình hướng đối tượng - Lê Thị Mỹ Hạnh ĐH Đà Nẵng
165 trang 112 0 0 -
Giáo trình Lập trình Windows 1 - Trường CĐN Đà Lạt
117 trang 96 0 0 -
Giáo trình Phân tích, thiết kế hướng đối tượng với UML: Phần 1 - Trường ĐH Công nghiệp Quảng Ninh
111 trang 95 0 0 -
265 trang 80 0 0
-
Giáo trình Lập trình hướng đối tượng với Java: Phần 2 - Trần Thị Minh Châu, Nguyễn Việt Hà
141 trang 75 0 0 -
33 trang 70 0 0
-
Ngôn ngữ lập trình C# 2005 - Tập 3: Lập trình hướng đối tượng (Phần 1)
196 trang 51 0 0