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

LỚP VÀ ĐỐIi TƯỢNG Cplusplus

18 176 0

Đ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 18
Dung lượng 420,5 KB

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

Nội dung

 Sơ lược về hàm xây dựng, hàm hủy  Dữ liệu và hàm thành viên tĩnh... Đối tượng Sử dụng đối tượng  Khi khởi tạo đối tượng xong, ta có thể :  Truy xuất đến dữ liệu thành viên của đối

Trang 1

LỚP VÀ ĐỐI TƯỢNG

 Lớp: khai báo, định nghĩa hàm thành viên.

 Đối tượng: khai báo, sử dụng, gán.

 Sơ lược về hàm xây dựng, hàm hủy

 Dữ liệu và hàm thành viên tĩnh

Trang 2

Khai báo

class < Tên lớp > {

Thuộc tính truy cập :

<Khai báo thành phần dữ liệu>

Thuộc tính truy cập :

<Khai báo các hàm thành viên>

};

Sơ đồ lớp

điểm trong

không gian

2 chiều

Trang 3

Định nghĩa hàm thành viên

<Kiểu trả về> <Tên lớp> :: :: <Tên hàm>( Các tham số + Kiểu ) {

< Khai báo các dữ liệu cục bộ của hàm>

< Thân hàm - Nội dung hàm >

< Câu lệnh return >

}

Toán tử chỉ phạm vi

Trang 4

Ví dụ

Trang 5

Đối tượng

Khởi tạo đối tượng

 Dạng biến: <Tên lớp> <Tên đối tượng>;

VD: Diem a, b;

 Dạng mảng: <Tên lớp> <Tên mảng>[Kích thước];

VD: Diem mang[10];

a

x y

1000H

x

x y 1008H

Trang 6

Đối tượng

Khởi tạo đối tượng

 Dạng con trỏ :

VD: Diem *pa, *ds;

pa= new Diem; ds= new Diem[10];

delete pa; delete[] ds;

Chú ý: Phải cấpthu hồi vùng nhớ cho con trỏ đối tượng.

y

1060H

1060

x

1064H

*ds 1064

Trang 7

Đối tượng

Sử dụng đối tượng

 Khi khởi tạo đối tượng xong, ta có thể :

 Truy xuất đến dữ liệu thành viên của đối tượng.

 Gọi hàm trên đối tượng.

tùy theo thuộc tính truy cập của các thành phần đó

Trang 8

Đối tượng

Phép gán đối tượng:

Dùng dấu = = ( có sẵn trong ngôn ngữ C++)

 Thực chất là gán tương ứng các thành phần dữ liệu của hai đối tượng cho nhau

Chỉ đúng đúng khi thành phần dữ liệu không có con trỏ

=> Phải định nghĩa lại phép gán khi dữ liệu có con trỏ

void main() { Diem a; a.KhoiTao(10,20);

Diem b, *pb;

b = a; b.InDiem(); // In ra (10, 20)

pb = new Diem ; *pb = a; pb->InDiem(); // In ra (10, 20)

Trang 9

Hàm xây dựng – Hàm hủy

Hàm xây dựng (Constructor)

 Tại sao cần hàm xây dựng ?

hiệu ứng phụ

Cần phải khởi tạo giá trị ban đầu

Trang 10

Hàm xây dựng – Hàm hủy

Hàm xây dựng (constructor)

 Dùng để khởi tạo đối tượng:

 Gán giá trị đầu cho các dữ liệu thành viên

 Cấp vùng nhớ cho các con trỏ thành viên

 Cú pháp:

 Cùng tên với tên lớp, không có trị trả về (kể cả void)

 Có thể không có hay có nhiều tham số

 Có thể không có, có 1 hay nhiều hàm xây dựng

 Sử dụng :

 Không được gọi trực tiếp

 Sẽ được tự động gọi khi khởi tạo đối tượng

Trang 11

Hàm xây dựng – Hàm hủy

Ví dụ 1 về hàm xây dựng

class Diem {

int x,y;

public :

Diem(); // xd mặc nhiên

Diem( int );

Diem( int , int );

};

Diem::Diem()

{ x=y=0; }

Diem::Diem( int a)

{ x = y = a; }

void main() { Diem a; // Goi Diem()

a InDiem(); // In (0,0)

Diem b(10,5); // Diem(int,int)

Diem c(3); // Diem(int)

Diem *pa = new Diem();

Diem *pb = new Diem(10,5);

Diem *pc = new Diem(3);

Diem ds1[10]; // Goi Diem()

Diem *ds2 = new Diem [10];

// Goi Diem()

Trang 12

Hàm xây dựng – Hàm hủy

Ví dụ 2 về hàm xây dựng

Trang 13

Hàm xây dựng – Hàm hủy

Hàm hủy (destructor)

 Dùng để thu hồi vùng nhớ đã cấp cho các dữ liệu thành viên là con trỏ của đối tượng, khi hủy bỏ đối tượng

=> delete các con trỏ là dữ liệu thành viên

 Một lớp có thể không có hoặc chỉ có duy nhất 1 hàm hủy

 Cú pháp : ~<Tên lớp> ( ) { … }

 Không được gọi trực tiếp mà sẽ được tự động gọi khi hủy

bỏ đối tượng

VD: Diem::~Diem () { }

SinhVien::~SinhVien() {

Trang 14

Các loại đối tượng

Đối tượng toàn cục - Đối tượng cục bộ

 Đối tượng toàn cục :

Khai báo ngoài các lớp và ngoài hàm main()

 Sẽ được khởi tạo (tự động gọi hàm xây dựng tương ứng)

trước khi hàm main() thực thi.

 Sẽ được hủy bỏ ( tự động gọi hàm hủy cho đối tượng )

sau khi kết thúc hàm main().

 Đối tượng cục bộ :

Khai báo trong một hàm.

 Sẽ khởi tạo trong khi thực thi hàm đó.

 Sẽ được hủy bỏ ( tự động gọi hàm hủy cho đối tượng đó)

trước khi hàm kết thúc.

Trang 15

Dữ liệu và hàm thành viên tĩnh

Dữ liệu thành viên tĩnh (static)

 Là dữ liệu thành viên dùng chung cho tất cả các đối tượng của cùng 1 lớp => tồn tại độc lập với các đối tượng

 Giống như 1 biến toàn cục

 Phải được khởi tạo bên ngoài của lớp

 Thường được sử dụng để đếm số lượng đối tượng hiện có

Trang 16

Dữ liệu và hàm thành viên tĩnh

Hàm thành viên tĩnh (static)

 Độc lập với các đối tượng

=> khi gọi hàm không cần đối tượng nào :

<Tên lớp>::<Tên hàm> (danh sách tham số)

 Chỉ cần thêm static vào trước khai báo hàm trong lớp.

 Giống như 1 hàm toàn cục

Trang 17

Khai thác một lớp

Khai báo lớp : file <tên lớp>.hpp

Định nghĩa hàm thành viên : file <tên lớp>.cpp

Sử dụng lớp : trong 1 file khác vidu.cpp

Diem.hpp

class Diem {

int x,y;

Diem.cpp

#include “Diem.hpp”

Diem::Diem() {… }

void Diem::InDiem() { … }

Vidu.cpp

#include “Diem.cpp” void main () {

Diem a;

a.InDiem();

….

Trang 18

Khai thác một lớp

Tránh định nghĩa lớp nhiều lần :

Để tránh #include nhiều lần một lớp có trong nhiều tập tin khác nhau, ta dùng các từ khóa tiền xử lý.

#ifndef #define #endif

Ngày đăng: 21/10/2014, 19:57

HÌNH ẢNH LIÊN QUAN

Sơ đồ lớp - LỚP VÀ ĐỐIi TƯỢNG Cplusplus
Sơ đồ l ớp (Trang 2)

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN