1. Trang chủ
  2. » Công Nghệ Thông Tin

Bài 11 Giới thiệu về lớp (class ) potx

29 2,3K 3

Đ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 405,88 KB

Nội dung

• Các hàm và biến trong class được gọi là thành viên của class, do đó một biến được khai báo trong class được gọi là biến thành viên, tương tự hàm được gọi là hàm thành viên.. Mặc định l

Trang 1

Bài 11 Giới thiệu về lớp (class )

Trang 2

Căn bản về class

• Class là cơ sở của C++ cho lập trình hướng đối tượng.

• Class là đơn vị đóng gói cơ bản, nó cung cấp

cơ chế để tạo đối tượng.

• Class định nghĩa một kiểu dữ liệu mới đặc tả một đối tượng Class bao gồm data và code thực thi data đó, vì vậy class liên kết data với code.

• Đối tượng là một hiện hữu của class

• Class là khái niệm trừu tượng mang tính luận lý còn đối tượng là biểu diễn vật lý của class.

Trang 3

• Data được chứa trong các biến còn code được

chưa trong các hàm

• Các hàm và biến trong class được gọi là thành viên của class, do đó một biến được khai báo trong

class được gọi là biến thành viên, tương tự hàm

được gọi là hàm thành viên

• Đôi khi cũng dùng khái niệm biến hiện hữu

Trang 4

Dạng tổng quát của class

Trang 5

Ví dụ 1

Trang 7

• Một class có thể chứa thành viên private (riêng)

hay public (phổ biến) Mặc định là private, có nghĩa

là chỉ được truy xuất bởi các thành viên khác của class

• Để cho phép truy xuất từ phần khác của chương trình thì định nghĩa thành viên sau từ khóa public Như vậy phần khác của chương trình truy xuất biến riêng củc class thông qua các hàm public

Trang 8

Tạo đối tượng

• Khi đã định nghĩa class, có thể tạo đối tượng bằng cách dùng tên của class làm kiểu

ví dụ:

queue Q1,Q2;

• Khi một đối tượng được tạo ra nó sẽ sở hữu riêng

các bản sao biến và hàm thành viên

Trang 9

Truy xuất

• Để truy xuất thành viên public của class thông qua một đối tượng dùng dấu chấm như cách dùng trên kiểu cấu trúc

• ví dụ

cout << Q1.sloc;

Trang 10

Thực hiện một hàm thành viên

• Dùng dấu :: để thông báo hàm của class

tên class :: tên hàm thành viên(){code}

Trang 11

• Khi một hàm thành viên gọi một hàm thành viên khác của lớp nó

có thể gọi trực tiếp, không có đối tượng hay dấu chấm.

• Khi code nằm ngoài class thì phải tham chiếu biến thông qua đối tượng và dấu chấm.

Trang 12

if(rloc == sloc) { cout << "Queue underflow.\n"; return 0;

} rloc++;

return q[rloc];

}

Trang 14

thường được gọi là hàm tạo.

• Hàm tạo không trà về giá trị

Trang 15

sloc = rloc = 0;

cout << "Queue Initialized.\n"; }

Trang 16

• Hàm hủy có cùng tên với class nhưng có dấu ~

đứng trước

• Hàm hủy cũng không có giá trị trả về

Trang 17

sloc = rloc = 0;

cout << "Queue initialized.\n"; }

queue::~queue() {

cout << "Queue destroyed.\n"; }

Trang 18

Hàm tạo có tham số

• Hàm tạo có thể chứa tham số để gán giá trị cho biến thành viên mỗi khi đối tượng được tạo ra

Trang 19

sloc = rloc = 0;

who = id;

cout << "Queue " << who << " initialized.\n";}

Trang 20

• Để truyền tham số vào hàm tạo, liên kết tham số với đối tượng khi khai báo

queue a = queue(102);

• Cách khác

queue a(102); đây là cách phổ biến nhất

Trang 21

cout << i << " " << j << "\n";

} int main() {

Trang 22

Hàm inline

• Hàm inline là hàm mà code của nó được mở rộng tại điểm mà nó được yêu cầu, không phải được gọi

• Lý do: giảm ovehead để thực thi hiệu quả

• Có hai cách tạo hàm inline:

o Dùng inline modifier

o Định nghĩa code bên trong một class

Trang 24

Tạo hàm inline trong class

• Bất kỳ hàm nào được định nghĩa trong class tự động là hàm inline

Trang 26

void set_res(resolution r) {res = r;}

resolution get_res() {return res;}

display display_mode[3];

int i, w, h;

display_mode[0].set_res(low);

display_mode[0].set_dim(640, 480); display_mode[1].set_res(medium);

display_mode[1].set_dim(800, 600); display_mode[2].set_res(high);

display_mode[2].set_dim(1600, 1200);

cout << "Available display modes:\n\n";

for(i=0; i<3; i++) { cout<<names[display_mode[i].get_res()]

<< ": ";

display_mode[i].get_dim(w, h);

cout << w << " by " << h << "\n";

} return 0;

}

Trang 27

Khởi động một mảng đối tượng

• Nếu một class chứa hàm tạo có tham số, một mảng

đối tượng có thể được khởi động

int main(){

samp sampArray[4] = { -1, -2, -3, -4 };

int i;

for(i=0; i<4; i++)cout << sampArray[i].get_a() << ' ';cout << "\n";

return 0;

}

Trang 28

Trỏ đến đối tượng

• Có thể truy xuất một đối tượng bằng cách dùng

con trỏ chỉ đến đối tượng

• Để truy xuất thành viên của đối tượng cần phải

dùng toán tử mũi tên

• Để khai báo một con trỏ đối tượng dùng cú pháp

như các kiểu khác

Trang 29

P_example ob, *p; // khai báo một đối tượng

//và con trỏ chỉ đến nó ob.set_num(1); // truy xuất ob

ob.show_num();

p = &ob; // gán địa chỉ của ob cho p p->show_num(); // truy xuất ob dùng con trỏ return 0;

}

Ngày đăng: 02/04/2014, 06:20

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w