Bài giảng Lập trình hướng đối tượng - Chương 1: Định nghĩa phép toán tập trung làm rõ hàm phép toán, chuyển kiểu, gán và khởi động, các phép toán thông dụng. Mời các bạn tham khảo bài giảng để bổ sung thêm kiến thức về vấn đề này.
Chương Định nghóa phép toán Nội dung Mở đầu Hàm phép toán Chuyển kiểu Gán khởi động Các phép toán thông dụng Mở đầu Trong C++, kiểu liệu nội (built-in data types): int, long, float, double, char… với phép toán +,,*,/… cung cấp cài đặt cụ thể khái niệm giới thực Các phép toán cho phép người sử dụng tương tác với chương trình theo giao diện tự nhiên tiện lợi Người sử dụng có nhu cầu tạo kiểu liệu mà ngôn ngữ không cung cấp ma trận, đa thức, số phức, vector Lớp C++ cung cấp phương tiện để qui định biểu diễn loại đối tượng Đồng thời tạo khả định nghóa phép toán cho kiểu liệu mới, nhờ người sử dụng thao tác kiểu liệu định nghóa theo giao diện thân thiện tương tự kiểu có sẵn Mở đầu Một phép toán ký hiệu mà thao tác liệu, liệu thao tác gọi toán hạng, thân ký hiệu gọi phép toán Phép toán có hai toán hạng gọi phép toán hai (nhị phân), có toán hạng gọi phép toán (đơn phân) Sau định nghóa phép toán cho kiểu liệu mới, ta sử dụng cách thân thiệ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); Hàm phép toán Bản chất phép toán ánh xạ, định nghóa phép toán định nghóa hàm Tất phép toán có C++ định nghóa + = |= || < >> / += >= , ^ *= == -> & /= != [] | %= = new ! &= && delete Ta định nghóa phép toán hàm có tên đặc biệt khoá operator theo sau ký hiệu phép toán cần định nghóa Ví dụ minh hoạ – Lớp PhanSo typedef int bool; typedef int Item; const bool false = 0, true = 1; long USCLN(long x, long y) { long r; x = abs(x); y = abs(y); if (x == || y == 0) return 1; while ((r = x % y) != 0) { x = y; y = r; } return y; } Ví dụ minh hoạ – Lớp PhanSo class PhanSo { long tu, mau; void UocLuoc(); public: PhanSo(long t, long m) {Set(t,m);} void Set(long t, long m); long LayTu() const {return tu;} long LayMau() const {return mau;} PhanSo Cong(PhanSo b) const; PhanSo operator + (PhanSo b) const; PhanSo operator - () const {return PhanSo(-tu, mau);} bool operator == (PhanSo b) const; bool operator != (PhanSo b) const; void Xuat() const; }; Ví dụ minh hoạ – Lớp PhanSo void PhanSo::UocLuoc() { long usc = USCLN(tu, mau); tu /= usc; mau /= usc; if (mau < 0) mau = -mau, tu = -tu; if (tu == 0) mau = 1; } Ví dụ minh hoạ – Lớp PhanSo void PhanSo::Set(long t, long m) { if (m) { tu = t; mau = m; UocLuoc(); } } void PhanSo::Xuat() const { cout