Lập trình hướng đối tượng & C++ - Chương 3: Lớp và đối tượng

Tài liệu Lập trình hướng đối tượng & C++ - Chương 3: Lớp và đối tượng: LỚP VÀ ðỐI TƯỢNG Chương 3 1 Nội dung • 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 • Khai thác 1 lớp 2 Lớp • Khai báo class { Thuộc tính truy cập : Thuộc tính truy cập : }; 3 Sơ đồ lớp điểm trong khơng gian 2 chiều Lớp • Định nghĩa hàm thành viên :: ( Các tham số + Kiểu ) Tốn tử chỉ phạm vi 4 { } Lớp • Ví dụ 5 ðối tượng • Khởi tạo đối tượng – Dạng biến: ; VD: Diem a, b; – Dạng mảng: [Kích thước]; VD: Diem mang[10]; 6 a x y 1000H b x y 1004H mang x y 1008H • 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; ðối tượng Chú ý:Phải cp và thu hi vùng nhớ cho con trỏ đối tượng. 7 *pa x y 1060H 1060 x y 1064H*ds1064 • 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...

pdf5 trang | Chia sẻ: putihuynh11 | Lượt xem: 735 | Lượt tải: 0download
Bạn đang xem nội dung tài liệu Lập trình hướng đối tượng & C++ - Chương 3: Lớp và đối tượng, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
LỚP VÀ ðỐI TƯỢNG Chương 3 1 Nội dung • 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 • Khai thác 1 lớp 2 Lớp • Khai báo class { Thuộc tính truy cập : Thuộc tính truy cập : }; 3 Sơ đồ lớp điểm trong khơng gian 2 chiều Lớp • Định nghĩa hàm thành viên :: ( Các tham số + Kiểu ) Tốn tử chỉ phạm vi 4 { } Lớp • Ví dụ 5 ðối tượng • Khởi tạo đối tượng – Dạng biến: ; VD: Diem a, b; – Dạng mảng: [Kích thước]; VD: Diem mang[10]; 6 a x y 1000H b x y 1004H mang x y 1008H • 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; ðối tượng Chú ý:Phải cp và thu hi vùng nhớ cho con trỏ đối tượng. 7 *pa x y 1060H 1060 x y 1064H*ds1064 • 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 đĩ. ðối tượng 8 • Ví dụ ðối tượng 9 • 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 khi thành phần dữ liệu khơng cĩ con trỏ. ðối tượng => Phải định nghĩa lại phép gán khi dữ liệu cĩ con trỏ. 10 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) 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 ? 11 hiệu ứng phụ Cần phải khởi tạo giá trị ban đầu cho các dữ liệu thành viên • 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: Hàm xây dựng – Hàm hủy • 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. 12 • Ví dụ 1 về hàm xây dựng class Diem { int x,y; public: Diem();// xd mặc nhiên Diem(int); void main() { // Goi Diem() Diem a; // In (0,0) a. InDiem(); // Diem(int,int) Diem b(10,5); // Diem(int) Hàm xây dựng – Hàm hủy 13 Diem(int,int); ... }; Diem::Diem() { x=y=0; } Diem::Diem(int a) { x = y = a; } Diem::Diem(int h, int t) { x=h; y=t; } Diem c(3); Diem *pa = new Diem(); Diem *pb = new Diem(10,5); Diem *pc = new Diem(3); // Goi Diem() Diem ds1[10]; // Goi Diem() Diem *ds2 = new Diem [10]; ... } • Ví dụ 2 về hàm xây dựng Hàm xây dựng – Hàm hủy 14 • 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. Hàm xây dựng – Hàm hủy – Cú phá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() { delete[] hoten; } 15 Các loại đối tượng • ðối tượng tồn cục - ðối tượng cục bộ – ðối tượng tồn cục : • Khai báo ngồi các lớp và ngồ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. 16 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 tồn cục. – Phải được khởi tạo bên ngồi của lớp. – Thường được sử dụng để đếm số lượng đối tượng hiện cĩ. 17 Tại thời điểm này dem = ? • 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 : :: (danh sách tham số) – Chỉ cần thêm static vào trước khai báo hàm trong lớp. Dữ liệu và hàm thành viên tĩnh – Giống như 1 hàm tồn cục. 18 Khai thác một lớp • Khai báo lớp : file .hpp • ðịnh nghĩa hàm thành viên : file .cpp • Sử dụng lớp : trong 1 file khác vidu.cpp Diem.hpp Diem.cpp Vidu.cpp 19 class Diem { int x,y; ... }; #include “Diem.hpp” Diem::Diem() { } void Diem::InDiem() { } ... #include “Diem.cpp” void main () { Diem a; a.InDiem(); . } • 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, Khai thác một lớp 20 ta dùng các từ khĩa tiền xử lý. #ifndef #define #endif

Các file đính kèm theo tài liệu này:

  • pdfchapter3_7866_1993464.pdf
Tài liệu liên quan