Bài giảng Phương pháp lập trình hướng đối tượng - Chương 3: Hàm dựng, Hàm hủy, Hàm toán tử

26 14 0
Bài giảng Phương pháp lập trình hướng đối tượng - Chương 3: Hàm dựng, Hàm hủy, Hàm toán tử

Đ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

Chương 3: Hàm dựng, Hàm hủy, Hàm toán tử thuộc bài giảng Phương pháp lập trình hướng đối tượng trình bày về tính chất hàm dựng, hàm dựng mặc định, hàm dựng sao chép, tính chất hàm hủy, hàm toán tử. Tài liệu này giúp ích cho quá trình học tập và giảng dạy.

Chương 2: Hàm dựng, Hàm hủy, Hàm toán tử Phương pháp lập trình hướng đối tượng Nội dung     Hàm dựng Hàm hủy Hàm toán tử Bài tập Phương pháp lập trình hướng đối tượng Nội dung     Hàm dựng Hàm hủy Hàm toán tử Bài tập Phương pháp lập trình hướng đối tượng Hàm dựng  Khi đối tượng vừa tạo: Giá trị thuộc tính bao nhiêu?  Đối tượng cần có thơng tin ban đầu  Giải pháp:    PhanSo Tử số?? Mẫu số?? Xây dựng phương thức cung cấp thông tin  Người dùng quên gọi?! “Làm khai sinh” cho đối tượng! HocSinh Họ tên?? Điểm văn?? Điểm toán?? Phương pháp lập trình hướng đối tượng Hàm dựng đời!! Hàm dựng  Tính chất hàm dựng (constructor): Bắt buộc gọi tạo đối tượng  Có thể nạp chồng nhiều hàm dựng  Trong C++, hàm dựng có tên trùng tên lớp  class PhanSo { private: int m_tuSo; int m_mauSo; public: PhanSo(int tuSo, int mauSo); PhanSo(int giaTri); }; Phương pháp lập trình hướng đối tượng void main() { PhanSo PhanSo PhanSo } p1(1, 2); p2(2, 3); *p3 = new PhanSo(2, 3); Hàm dựng  Hàm dựng mặc định (default constructor): Khơng có tham số  Dùng tạo đối tượng với thông tin mặc định  Lớp khơng có hàm dựng  Trình biên dịch cung cấp  class PhanSo { private: int m_tuSo; int m_mauSo; public: PhanSo(); }; Phương pháp lập trình hướng đối tượng void main() { PhanSo p; PhanSo q = new PhanSo; } Hàm dựng  Hàm dựng chép (copy constructor): Có tham số đối tượng lớp  Dùng tạo đối tượng từ đối tượng loại  Lớp khơng có hàm dựng chép  Trình biên dịch cung cấp  class PhanSo { private: int m_tuSo; int m_mauSo; public: PhanSo(const PhanSo &p); }; Phương pháp lập trình hướng đối tượng void main() { PhanSo PhanSo PhanSo } p1(1, 2); p2(p1); p3 = p2; Hàm dựng  Dr Guru khuyên:  Một lớp nên có tối thiểu hàm dựng:    Hàm dựng mặc định Hàm dựng có đầy đủ tham số Hàm dựng chép class PhanSo { private: int m_tuSo; int m_mauSo; public: PhanSo(); PhanSo(int tuSo, int mauSo); PhanSo(const PhanSo &p); }; Phương pháp lập trình hướng đối tượng Nội dung     Hàm dựng Hàm hủy Hàm toán tử Bài tập Phương pháp lập trình hướng đối tượng Hàm hủy  Vấn đề rò rỉ nhớ (memory leak): Khi hoạt động, đối tượng có cấp phát nhớ  Khi hủy đi, nhớ không thu hồi!!  Giải pháp:    Xây dựng phương thức thu hồi  Người dùng quên gọi! Làm “khai tử” cho đối tượng HocSinh Họ tên Điểm văn Điểm toán Thu hồi Phương pháp lập trình hướng đối tượng Rị Rịrỉrỉbộ bộnhớ!! nhớ!! Hàm hủy vào cuộc!! 10 Nội dung     Hàm dựng Hàm hủy Hàm toán tử Bài tập Phương pháp lập trình hướng đối tượng 12 Hàm tốn tử  Khái niệm hàm tốn tử: Có thể dùng toán tử đặt tên hàm?  Trong C++, dùng từ khóa operator  PhanSo operator +(const PhanSo &p1, const PhanSo &p2);  Hệ quả?  Định nghĩa lại cách thực toán tử PhanSo p1, p2; PhanSo p3 = p1 + p2;  Định nghĩa nhiều cách thực khác cho toán tử nạp chồng hàm PhanSo operator +(const PhanSo &p, int so); float opeartor +(const PhanSo &p, float so); Phương pháp lập trình hướng đối tượng 13 Hàm toán tử  Ưu điểm:  Thực toán tử kiểu liệu tự định nghĩa PhanSo p1, p2; PhanSo p3 = p1 + p2;  HocSinh h1, h2; if (h1 > h2) h1++; Hạn chế: Khơng thể tạo tốn tử  Khơng thể định nghĩa lại toán tử kiểu  Ngơi tốn tử giữ ngun  Độ ưu tiên tốn tử khơng đổi  Đơi gây nhầm lẫn!!  Phương pháp lập trình hướng đối tượng 14 Hàm toán tử  Phân loại hàm toán tử:  Tốn tử độc lập:   Khơng thuộc lớp Ngơi tốn tử số tham số truyền vào PhanSo operator +(const PhanSo &p1, const PhanSo &p2); bool operator >(const PhanSo &p1, const PhanSo &p2);  Toán tử thuộc lớp:   Là phương thức lớp Ngôi toán tử: đối tượng lớp + số tham số PhanSo PhanSo::operator +(const PhanSo &p); bool PhanSo::operator >(const PhanSo &p);  Cách sử dụng loại nhau!! Phương pháp lập trình hướng đối tượng 15 Hàm tốn tử  Tốn tử định nghĩa lại: Ngơi Ngơi (Unary) Ngơi (Binary) Nhóm Tốn tử Tăng giảm ++, Dấu số học +, - Logic !, ~ Con trỏ *, & Ép kiểu int, float, double, … Số học +, -, *, /, %, +=, -=, *=, /=, %= So sánh >, =,  Tốn tử =  Toán tử [ ]  Phương pháp lập trình hướng đối tượng 18 Tóm tắt  Hàm dựng: Khởi tạo thông tin ban đầu cho đối tượng  Bắt buộc gọi tạo đối tượng  Mỗi lớp có nhiều hàm dựng   Hàm hủy: Dọn dẹp nhớ cho đối tượng  Tự động gọi đối tượng bị hủy  Mỗi lớp có hàm hủy  Phương pháp lập trình hướng đối tượng 19 Tóm tắt  Hàm tốn tử: Hàm có tên tốn tử  Dùng định nghĩa lại toán tử  Ràng buộc:       Ngơi tốn tử giữ ngun Độ ưu tiên tốn tử khơng đổi Khơng thể tạo tốn tử Khơng thể định nghĩa lại tốn tử cho kiểu Có loại hàm toán tử:   Toán tử độc lập Toán tử thuộc lớp Phương pháp lập trình hướng đối tượng 20 Nội dung     Hàm dựng Hàm hủy Hàm tốn tử Bài tập Phương pháp lập trình hướng đối tượng 21 Bài tập  Bài tập 3.1: Bổ sung vào lớp phân số phương thức sau: (Nhóm tạo hủy)  Khởi tạo mặc định phân số =  Khởi tạo với tử mẫu cho trước  Khởi tạo từ giá trị nguyên cho trước  Khởi tạo từ phân số khác (Nhóm toán tử)  Toán tử số học: +, -, *, /, =, +=, -=  Toán tử so sánh: >, =, >, , =, >, , =, >, , =, >, >,

Ngày đăng: 08/05/2021, 14:07

Từ khóa liên quan

Mục lục

  • Chương 2: Hàm dựng, Hàm hủy, Hàm toán tử

  • Nội dung

  • Slide 3

  • Hàm dựng

  • Slide 5

  • Slide 6

  • Slide 7

  • Slide 8

  • Slide 9

  • Hàm hủy

  • Slide 11

  • Slide 12

  • Hàm toán tử

  • Slide 14

  • Slide 15

  • Slide 16

  • Slide 17

  • Slide 18

  • Tóm tắt

  • Slide 20

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

Tài liệu liên quan