intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

Bài giảng Ngôn ngữ lập trình C - Chương 13: Toán tử trên lớp

Chia sẻ: Bfvhgfff Bfvhgfff | Ngày: | Loại File: PDF | Số trang:12

91
lượt xem
12
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Nội dung chính của bài giảng Ngôn ngữ lập trình C Chương 13: Toán tử trên lớp trình bày về toán tử, hàm toán tử, định nghĩa chồng toán tử, định nghĩa chồng toán tử giảm...bài giảng thiết thực dành cho sinh viên ngành công nghệ thông tin đang học môn nhập môn lập trình C.

Chủ đề:
Lưu

Nội dung Text: Bài giảng Ngôn ngữ lập trình C - Chương 13: Toán tử trên lớp

  1. CHƯƠNG 13: TOÁN TỬ TRÊN LỚP • Nội dung Toán tử Hàm toán tử Định nghĩa chồng toán tử gán “=“ Định nghĩa chồng toán tử tăng/giảm ”++“/”—” Định nghĩa chồng toán tử “[]” Định nghĩa chồng toán tử “”
  2. Toán tử  Trong C++, có thể định nghĩa chồng đối với hầu hết các toán tử (một ngôi hoặc hai ngôi) trên các lớp, nghĩa là một trong các toán hạng tham gia phép toán là các đối tượng.  Toán tử được định nghĩa chồng bằng cách định nghĩa một hàm toán tử với tên bao gồm từ khóa operator và theo sau là ký hiệu toán tử cần định nghĩa chồng. • Ví dụ 1: Một số ví dụ về tên hàm toán tử • operator+ định nghĩa phép cộng • operator- định nghĩa phép trừ • operator* định nghĩa phép nhân • operator/ định nghĩa phép chia • operator+= định nghĩa phép cộng bằng • operator!= định nghĩa phép so sánh khác
  3. Hàm toán tử • Hàm toán tử có thể là hàm thành phần hoặc hàm bạn của lớp. Khi hàm toán tử là hàm thành phần của lớp thì toán hạng thứ nhất trong hàm toán tử luôn là một đối tượng thuộc lớp đó. Nếu toán hạng thứ nhất trong hàm toán tử không phải là một đối tượng của lớp thì hàm toán tử phải là hàm bạn của lớp. • Ví dụ 2: • class SoPhuc • { • private: • float re, im; //phần thực và phần ảo • public: • SoPhuc(float re = 0; float im = 0); void Xuat(); • //Hàm toán tử cộng hai đối tượng Sophuc • SoPhuc operator+(SoPhuc u); // Hàm thành phần lớp • /*Hàm toán tử cộng một số thực với phần thực của một đối tượng SoPhuc*/ • friend SoPhuc operator+(float x, SoPhuc v); //Hàm bạn • };
  4. • //Định nghĩa các hàm thành phần • SoPhuc::SoPhuc(float im1, float re1) • { • im = im1; re = re1; • } • SoPhuc SoPhuc::oprator+(SoPhuc u) • { • cout
  5. • //Định nghĩa hàm tự do • SoPhuc operator+(float x, SoPhuc u) • { cout
  6. Định nghĩa chồng phép gán  Hàm toán tử gán luôn là hàm thành phần của lớp.  Việc định nghĩa chồng phép gán chỉ cần thiết khi các đối tượng có các thành phần dữ liệu động.  Giá trị trả về của hàm toán tử gán được chọn là tham chiếu đến đối tượng đứng bên trái phép gán nhằm giũ hai tính chất quan trong của phép gán: trật tự kết hợp tử bên phải sang bên trái và có thể sử dụng kết quả biểu thức gán trong các biểu thức khác. • Ví dụ 3: • class Vector • { • private: • ... • public: • ... • Vector& operator=(Vector &u); • };
  7. • Vector& Vector::operator=(Vector &u) • { • cout
  8. • void main() • { • ... • Vector b = a; //Gọi hàm thiết lập sao chép • b.Xuat(); • Vector c(0); • c = b; //Gọi hàm toán tử gán • c.Xuat(); • }
  9. Định nghĩa chồng toán tử “” • Việc định nghĩa chồng hai toán tử “” sẽ cho phép các đối tượng đứng bên phải chúng khi thức hiện các thao tác nhập xuất. • Ví dụ 4: • class SoPhuc • { • private: • float im, re; • public: • // • friend ostream& operator(istream &is, SoPhuc &u); • };
  10. • //Định nghĩa hàm tự do • ostream& operator
  11. • Chú ý: • Các toán hạng bên trái của các toán tử > là các đối tượng thuộc lớp ostream và istream chứ không phải thuộc lớp SoPhuc nên không thể định nghĩa chồng các toán tử này như là hàm thành phần, mà phải được định nghĩa như là hàm bạn.
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
3=>0