Bài giảng Lập trình C++: Chương 8 - GV. Nguyễn Văn Hùng
lượt xem 16
download
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.
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: Bài giảng Lập trình C++: Chương 8 - GV. Nguyễn Văn Hùng
- 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
- 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
- Đị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
- Đị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
- Đị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
- Đị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
- Định nghĩa lớp class CHUNHAT { double d, r; public: void Nhapdl(); void Chuvi() { cout
- Định nghĩa lớp void CHUNHAT::Nhapdl() { coutd; coutr; } void CHUNHAT::Dientich() { cout
- Đị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
- 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
- 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
- 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
- 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
- Ví dụ void main() { double a, b; CHUNHAT h1, h[3]; h1.Nhapdl(); h1.Chuvi(); h1.Dientich(); cout
- 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
- 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
- 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
- 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
- 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
- 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
CÓ THỂ BẠN MUỐN DOWNLOAD
-
Bài giảng Lập trình C++: Chương 1 - GV. Nguyễn Văn Hùng
60 p | 193 | 36
-
Bài giảng Lập trình C++: Chương 4 - GV. Nguyễn Văn Hùng
49 p | 190 | 20
-
Bài giảng Lập trình C++: Chương 5 - GV. Nguyễn Văn Hùng
57 p | 140 | 20
-
Bài giảng Lập trình C++: Chương 3 - GV. Nguyễn Văn Hùng
55 p | 135 | 17
-
Bài giảng Lập trình C++: Chương 7 - GV. Nguyễn Văn Hùng
25 p | 120 | 17
-
Bài giảng Lập trình C++: Chương 6 - GV. Nguyễn Văn Hùng
60 p | 115 | 17
-
Bài giảng Lập trình C++: Chương 2 - GV. Nguyễn Văn Hùng
32 p | 124 | 15
-
Bài giảng Lập trình C: Chương 2 - Trần Minh Thái
99 p | 88 | 12
-
Bài giảng Lập trình C: Chương 1 - Các khái niệm cơ bản
29 p | 196 | 12
-
Bài giảng Lập trình C: Chương 1 - Trần Minh Thái
58 p | 118 | 11
-
Bài giảng Lập trình C: Chương 4 - Trần Minh Thái
63 p | 100 | 10
-
Bài giảng Lập trình C: Chương 3 - Trần Minh Thái
54 p | 80 | 9
-
Bài giảng Lập trình C: Chương 5b - Cấu trúc điều khiển
55 p | 83 | 6
-
Bài giảng Lập trình C: Chương 1 - Ngô Công Thắng
15 p | 72 | 6
-
Bài giảng Lập trình C: Chương 4 - Ngô Công Thắng
40 p | 81 | 5
-
Bài giảng Lập trình C: Chương 2 - Các thành phần của một chương trình C/C++ đơn giản
21 p | 107 | 4
-
Bài giảng Lập trình C: Chương 6 - Hàm và cấu trúc chương trình
34 p | 19 | 3
Chịu trách nhiệm nội dung:
Nguyễn Công Hà - Giám đốc Công ty TNHH TÀI LIỆU TRỰC TUYẾN VI NA
LIÊN HỆ
Địa chỉ: P402, 54A Nơ Trang Long, Phường 14, Q.Bình Thạnh, TP.HCM
Hotline: 093 303 0098
Email: support@tailieu.vn