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

Bài giảng Lập trình C++: Chương 8 - GV. Nguyễn Văn Hùng

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

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

Bài giảng Lập trình C++ - Chương 8: Lớp và đối tượng nhằm cung cấp cho sinh viên cách định nghĩa lớp, khai báo các đối tượng, các loại hàm trong lớp, kiểu của phương thức và các tham số; hàm. Mời bạn đọc cùng tham khảo.

Chủ đề:
Lưu

Nội dung Text: Bài giảng Lập trình C++: Chương 8 - GV. Nguyễn Văn Hùng

  1. LẬP TRÌNH C++ (3 Tín chỉ) Gv: Nguyễn Văn Hùng Khoa: Khoa học máy tính Ngôn ngữ lập trình C++ 1/18
  2. CHƯƠNG 8: LỚP VÀ ĐỐI TƯỢNG  Mục tiêu  Cung cấp cho sinh viên cách định nghĩa lớp, khai báo các đối tượng, các loại hàm trong lớp, ...  Nội dung  Định nghĩa lớp  Khai báo đối tượng  Kiểu của phương thức và các tham số  Hàm Ngôn ngữ lập trình C++ Chương 8: Lớp và đối tượng 2/29
  3. Định nghĩa lớp - Một định nghĩa lớp gồm 2 thành phần: phần đầu và phần thân. - Phần đầu lớp chỉ định tên lớp và các lớp cơ sở - Phần thân lớp định nghĩa các thành viên lớp - Có hai loại thành viên: - Dữ liệu thành viên: Có cú pháp của định nghĩa biến và chỉ định các đại diện cho các đối tượng của lớp - Hàm thành viên: Có cú pháp của khai báo hàm và chỉ định các thao tác của lớp Ngôn ngữ lập trình C++ Chương 8: Lớp và đối tượng 3/29
  4. Định nghĩa lớp - Các thành viên lớp được khai báo theo một trong 2 chế độ: - Các thành viên chung: Sử dụng từ khóa public. Có thể được truy xuất bởi tất cả các thành phần sử dụng lớp. - Các thành viên riêng: Sử dụng từ khóa private. Chỉ có thể được truy xuất bởi các thành viên lớp. Ngôn ngữ lập trình C++ Chương 8: Lớp và đối tượng 4/29
  5. Định nghĩa lớp Chú ý: - Trong C++, các khai báo lớp phổ biến là các dữ liệu thành viên được khai báo ở chế độ private; và các hàm thành viên được khai báo ở chế độ public. - Nếu không quy định cụ thể đó là private hay public thì C++ hiểu đó là private. Ngôn ngữ lập trình C++ Chương 8: Lớp và đối tượng 5/29
  6. Định nghĩa lớp - Cú pháp định nghĩa lớp: class Ten_lop { khai báo dữ liệu thành viên của lớp khai báo hàm thành viên của lớp }; Ví dụ: Để định nghĩa một lớp đại diện cho các hình chữ nhật. Phân tích: - Đặt tên lớp là CHUNHAT - Các thuộc tính: Chiều dài d và chiều rộng r - Các phương thức: Nhapdl(), Chuvi(), Dientich() => Lớp CHUNHAT được định nghĩa như sau: Ngôn ngữ lập trình C++ Chương 8: Lớp và đối tượng 6/29
  7. Định nghĩa lớp class CHUNHAT { double d, r; public: void Nhapdl(); void Chuvi() { cout
  8. Định nghĩa lớp void CHUNHAT::Nhapdl() { coutd; coutr; } void CHUNHAT::Dientich() { cout
  9. Định nghĩa lớp Nhận xét: - Nếu phương thức được định nghĩa trong định nghĩa lớp (hàm thành viên nội tuyến) thì nó được định nghĩa giống như một hàm thông thường - Khi xây dựng các phương thức bên ngoài lớp, cần dùng thêm tên lớp và toán tử phạm vi “::” đặt ngay trước tên phương phức để quy định rõ đây là phương thức của lớp nào. - Giá trị trả về của phương thức có thể có kiểu bất kỳ Ngôn ngữ lập trình C++ Chương 8: Lớp và đối tượng 9/29
  10. Khai báo đối tượng - Lớp sau khi định nghĩa có thể được xem như một kiểu đối tượng và có thể dùng để khai báo các biến, mảng, con trỏ đối tượng. Cú pháp: Tên_lớp Danh sách các biến, mảng hoặc con trỏ; Lúc này, các biến, mảng hay con trỏ được gọi là các đối tượng (thể hiện) của lớp Ngôn ngữ lập trình C++ Chương 8: Lớp và đối tượng 10/29
  11. Khai báo đối tượng Ví dụ: Ta có khai báo CHUNHAT h1, h[5], *cn; - Mỗi đối tượng sau khi khai báo sẽ được cấp phát vùng nhớ riêng để chứa các thuộc tính của chúng. - Không có vùng nhớ riêng để chứa các phương thức cho mỗi đối tượng, các phương thức sẽ được sử dụng chung cho tất cả các đối tượng cùng lớp. Ngôn ngữ lập trình C++ Chương 8: Lớp và đối tượng 11/29
  12. Sử dụng phương thức và thuộc tính của lớp Thuộc tính của đối tượng: • Tên thuộc tính luôn đi kèm với tên đối tượng để xác định đang thao tác với giá trị thuộc tính của đối tượng nào. • Cú pháp: − Tên đối tượng.thuộc tính − Tên con trỏ->thuộc tính − Tên con trỏ[chỉ số].thuộc tính Ví dụ: h1.d; h1.r; ... Ngôn ngữ lập trình C++ Chương 8: Lớp và đối tượng 12/29
  13. Sử dụng phương thức và thuộc tính của lớp Sử dụng phương thức: • Cũng giống như thuộc tính, phương thức cũng luôn đi kèm với tên đối tượng để chỉ rõ phương thức thực hiện trên các thuộc tính của đối tượng nào. • Cú pháp:  Tên đối tượng.phương thức([tham số])  Tên con trỏ->phương thức([tham số])  Tên con trỏ[chỉ số].phương thức([tham số]) Ví dụ: h1.Nhapdl(); h[3].Chuvi(); cn->Dientich()... Ngôn ngữ lập trình C++ Chương 8: Lớp và đối tượng 13/29
  14. Ví dụ void main() { double a, b; CHUNHAT h1, h[3]; h1.Nhapdl(); h1.Chuvi(); h1.Dientich(); cout
  15. Con trỏ This Con trỏ this là đối thứ nhất của phương thức. - C++ sử dụng con trỏ đặc biệt this trong các phương thức. Do đó, các thuộc tính được sử dụng trong các phương thức được hiểu là thuộc một đối tượng do con trỏ this trỏ tới. - Khi đó, viết: cin>>d; cin>>r; Được hiểu là: cin>>this->d; cin>>this->r; Ngôn ngữ lập trình C++ Chương 8: Lớp và đối tượng 15/29
  16. Con trỏ This Tham số ứng với đối con trỏ this. - Tham số truyền cho con trỏ this chính là địa chỉ của đối tượng đi kèm với phương thức trong lời gọi phương thức. Chẳng hạn: h1.Nhapdl(); Thực chất là đã truyền địa chỉ của h1 cho con trỏ this Ngôn ngữ lập trình C++ Chương 8: Lớp và đối tượng 16/29
  17. Kiểu của phương thức và tham số - Phương thức có thể trả về giá trị hoặc không, có thể có tham số hoặc không. - Kiểu trả về, kiểu đối của phương thức có thể là kiểu chuẩn hoặc ngoài chuẩn. Ví dụ: Xây dựng lớp DIEM và tính độ dài giữa 2 điểm - Xác định các thuộc tính và phương thức - Kiểu dữ liệu tương ứng của các thuộc tính và phương thức - Các đối và kiểu của đối Ngôn ngữ lập trình C++ Chương 8: Lớp và đối tượng 17/29
  18. Hàm - Hàm - Hàm bạn - Hàm tạo - Hàm hủy Ngôn ngữ lập trình C++ Chương 8: Lớp và đối tượng 18/29
  19. Hàm - Hàm được định nghĩa giống như trong lập trình cấu trúc - Hàm có phạm vi trong toàn bộ chương trình. Có nghĩa là nó được gọi từ bất kỳ đâu, kể cả trong các phương thức của lớp - Đối của hàm có thể là đối tượng Chẳng hạn: double Dientich(CHUNHAT h) { return h.d*h.r; } Ngôn ngữ lập trình C++ Chương 8: Lớp và đối tượng 19/29
  20. Hàm - Nhận xét: Hàm Dientich sẽ bị báo lỗi vì trong thân hàm không cho phép sử dụng các thuộc tính d, r của đối tượng h. - Phạm vi sử dụng các phương thức của lớp là toàn chương trình. Vì thế, có thể gọi các phương thức trong các hàm. Ngôn ngữ lập trình C++ Chương 8: Lớp và đối tượng 20/29
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
7=>1