slide LỚP VÀ ĐỐI TƯỢNG trong C++

29 1.1K 2
slide LỚP VÀ ĐỐI TƯỢNG trong C++

Đ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

Ngôn ngữ lập trình C++ Chương 8: Lớp đối tượng 1/29 CHƯƠNG 8: LỚP ĐỐ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 các tham số  Hàm Ngôn ngữ lập trình C++ Chương 8: Lớp đối tượng 2/29 - Một định nghĩa lớp gồm 2 thành phần: phần đầu phần thân. - Phần đầu lớp chỉ định tên lớp 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 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 chỉ định các thao tác của lớp Định nghĩa lớp Ngôn ngữ lập trình C++ Chương 8: Lớp đối tượng 3/29 - 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. Định nghĩa lớp Ngôn ngữ lập trình C++ Chương 8: Lớp đối tượng 4/29 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; 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. Định nghĩa lớp Ngôn ngữ lập trình C++ Chương 8: Lớp đối tượng 5/29 - 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 chiều rộng r - Các phương thức: Nhapdl(), Chuvi(), Dientich() => Lớp CHUNHAT được định nghĩa như sau: Định nghĩa lớp Ngôn ngữ lập trình C++ Chương 8: Lớp đối tượng 6/29 class CHUNHAT { double d, r; public: void Nhapdl(); void Chuvi() { cout<<"Chu vi la: "<<(d+r)*2<<endl;} void Dientich(); }; Chú ý: Các hàm thành viên của lớp có thể được định nghĩa bên trong hoặc ngoài định nghĩa lớp. Tuy nhiên, thường được định nghĩa bên ngoài (tách biệt) với lớp. Định nghĩa lớp Ngôn ngữ lập trình C++ Chương 8: Lớp đối tượng 7/29 void CHUNHAT::Nhapdl() { cout<<"Nhap chieu dai d= "; cin>>d; cout<<"Nhap chieu rong r= "; cin>>r; } void CHUNHAT::Dientich() { cout<<"Dien tich = "<<d*r<<endl; } Định nghĩa lớp Ngôn ngữ lập trình C++ Chương 8: Lớp đối tượng 8/29 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 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ỳ Định nghĩa lớp Ngôn ngữ lập trình C++ Chương 8: Lớp đối tượng 9/29 - Lớp sau khi định nghĩa có thể được xem như một kiểu đối tượng 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 Khai báo đối tượng Ngôn ngữ lập trình C++ Chương 8: Lớp đối tượng 10/29 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. Khai báo đối tượng [...]... dựng lớp DIEM tính độ dài giữa 2 điểm - Xác định các thuộc tính phương thức - Kiểu dữ liệu tương ứng của các thuộc tính phương thức - Các đối kiểu của đối Ngôn ngữ lập trình C++ Chương 8: Lớp đối tượng 16/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 đối tượng 17/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. .. dụng phương thức 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 đối tượng 11/29 Sử dụng phương thức thuộc tính của lớp Sử dụng phương... trước) tên lớp - Tham số: Hàm hủy không có tham số Ngôn ngữ lập trình C++ Chương 8: Lớp đối tượng 28/29 Bài tập 1 Định nghĩa lớp hình tròn với các phương thức thuộc tính cần thiết Sau đó, khai báo một biến đối tượng hình tròn Tính hiển thị ra màn hình chu vi diện tích của hình tròn 2 Định nghĩa lớp Số phức với các phương thức thuộc tính cần thiết Sau đó, khai báo mảng đối tượng số... lập trình C++ Chương 8: Lớp đối tượng 13/29 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 đối tượng 14/29... 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 đối tượng 18/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. .. trình C++ Chương 8: Lớp đối tượng 23/29 Hàm tạo - Hàm tạo cũng là một phương thức của lớp dùng để khởi tạo giá trị cho một đối tượng mới - Hàm tạo có một số đặc điểm sau: • • • • Tên của hàm tạo: Trùng với tên của lớp Hàm tạo không trả về kết quả Không khai báo kiểu trả về cho hàm tạo Hàm tạo có thể được xây dựng bên trong hoặc ngoài định nghĩa lớp • Hàm tạo có thể có hoặc không có tham số • Trong. .. khỏi bộ nhớ một đối tượng nào đó đang quản lý, xoá đối tượng khỏi màn hình nếu như nó đang hiển thị • Các hàm hủy có tên trùng với tên của hàm tạo tương ứng, nhưng trước tên hàm hủy kèm theo ký tự “~” • Nếu trong lớp không có hàm hủy thì chương trình dịch sẽ tự động tạo ra hàm hủy mặc định không làm gì cả Ngôn ngữ lập trình C++ Chương 8: Lớp đối tượng 27/29 Hàm hủy Đặc điểm: - Mỗi lớp chỉ có một... thường, trong thân hàm bạn của một lớp nào đó cho phép thao tác với các thuộc tính của đối tượng thuộc lớp đó - Tuy nhiên, hàm bạn không phải phương thức của lớp do đó lời gọi giống như lời gọi hàm thông thường Ngôn ngữ lập trình C++ Chương 8: Lớp đối tượng 22/29 Hàm bạn Chẳng hạn void main() { SOPHUC kq, a, b; a.nhapdl(); b.nhapdl(); kq=a.sum1(b); kq=sum2(a,b); } - Một hàm có thể là bạn của nhiều lớp. .. thiết Sau đó, khai báo mảng đối tượng số phức gồm 5 phần tử Tính hiển thị ra màn hình tổng của 5 số phức đó 3 Định nghĩa lớp phân số gồm các phương thức thuộc tính cần thiết Sau đó, khai báo hai đối tượng phân số Tính hiển thị ra màn hình tổng hiệu của 2 phân số đó sau khi đã rút gọn Ngôn ngữ lập trình C++ Chương 8: Lớp đối tượng 29/29 ... 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 đối tượng 12/29 Ví dụ void main() { double a, b; CHUNHAT . ngữ lập trình C++ Chương 8: Lớp và đối tượng 1/29 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. cho tất cả các đối tượng cùng lớp. Khai báo đối tượng Ngôn ngữ lập trình C++ Chương 8: Lớp và đối tượng 11/29 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. nghĩa lớp Ngôn ngữ lập trình C++ Chương 8: Lớp và đối tượng 9/29 - 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ú

Ngày đăng: 16/04/2014, 13:51

Từ khóa liên quan

Mục lục

  • CHƯƠNG 8: LỚP VÀ ĐỐI TƯỢNG

  • Slide 2

  • Slide 3

  • Slide 4

  • Slide 5

  • Slide 6

  • Slide 7

  • Slide 8

  • Slide 9

  • Slide 10

  • Slide 11

  • Slide 12

  • Slide 13

  • Slide 14

  • Slide 15

  • Slide 16

  • Slide 17

  • Slide 18

  • Slide 19

  • Slide 20

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

  • Đang cập nhật ...

Tài liệu liên quan