1. Trang chủ
  2. » Giáo Dục - Đào Tạo

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

29 1,1K 2
Tài liệu đã được kiểm tra trùng lặp

Đ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

Thông tin cơ bản

Định dạng
Số trang 29
Dung lượng 365 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

CHƯƠNG 8: LỚP VÀ ĐỐI TƯỢNG Khai báo đối tượng  Kiểu của phương thức và các tham số  Hàm... - 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

Trang 1

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

 Khai báo đối tượng

 Kiểu của phương thức và các tham số

 Hàm

Trang 2

- 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

Định nghĩa lớp

Trang 3

- 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ó thể được truy xuất bởi các thành viên lớp

Định nghĩa lớp

Trang 4

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

Định nghĩa lớp

Trang 5

- 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()

Định nghĩa lớp

Trang 6

class CHUNHAT {

Định nghĩa lớp

Trang 7

void CHUNHAT::Nhapdl(){

cout<<"Nhap chieu dai d= "; cin>>d;

cout<<"Nhap chieu rong r= "; cin>>r;

Trang 8

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ỳ

Định nghĩa lớp

Trang 9

- 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

Khai báo đối tượng

Trang 10

Khai báo đối tượng

Trang 11

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;

Sử dụng phương thức và thuộc tính của

lớp

Trang 12

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 con trỏ->phương thức([tham số])

Ví dụ:

h1.Nhapdl(); h[3].Chuvi(); cn->Dientich()

Sử dụng phương thức và thuộc tính của

lớp

Trang 13

for ( int i=0; i<=2; i++) { cout<<"Nhap du lieu cho hinh thu "<<i<<endl;

h[i].Nhapdl();

h[i].Chuvi();

h[i].Dientich();

Ví dụ

Trang 14

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

Trang 15

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

Con trỏ This

Trang 16

- 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

Kiểu của phương thức và tham số

Trang 18

- 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

Trang 19

- 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

Hàm

Trang 20

- Để một hàm trở thành là hàm bạn của một lớp nào đó ta sử dụng từ khóa friend ngay trước khai báo hoặc định nghĩa hàm.

- Hàm bạn có thể được định nghĩa trong hoặc ngoài định nghĩa lớp.

Trang 21

cout<<"nhap ao:"; cin>>ao;}

SOPHUC sum1(SOPHUC a) { SOPHUC tg;

tg.thuc=thuc+a.thuc;

tg.ao=ao+a.ao;

return tg;}

Hàm bạn

Trang 22

SOPHUC sum2(SOPHUC a, SOPHUC b)

- 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.

Hàm bạn

Trang 24

- 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 một lớp có thể có nhiều hàm tạo (cùng tên nhưng số tham số hoặc kiểu khác nhau)

• Nếu lớp không có hàm tạo, chương trình dịch sẽ cung cấp một hàm tạo mặc định không có tham số Thực chất hàm này không

Hàm tạo

Trang 27

• Hàm hủy là một phương thức của lớp, có chức năng ngược với hàm tạo

• Tức là hàm huỷ có chức năng giải phóng ra 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ự

Hàm hủy

Trang 28

Đặc điểm:

- Mỗi lớp chỉ có một hàm hủy

- Kiểu của hàm: Hàm hủy cũng giống như hàm tạo

là hàm không có kiểu, không có giá trị trả về

- Tên hàm: Tên của hàm hủy gồm một dấu ngã ~

(đứng trước) và tên lớp

- Tham số: Hàm hủy không có tham số

Hàm hủy

Trang 29

1 Định nghĩa lớp hình tròn với các phương thức và 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 và hiển thị ra màn hình chu vi và 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 và thuộc tính

cần thiết Sau đó, khai báo mảng đối tượng số phức gồm 5 phần tử Tính và 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 và thuộc tính

cần thiết Sau đó, khai báo hai đối tượng phân số Tính và hiển thị ra màn hình tổng và hiệu của 2 phân số đó sau khi

Bài tập

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

TỪ KHÓA LIÊN QUAN

w