intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

Bài giảng Kỹ thuật lập trình: Chương 3 - Trần Quang Hải Bằng

Chia sẻ: Sơn Tùng | Ngày: | Loại File: PDF | Số trang:5

73
lượt xem
3
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Bài giảng "Kỹ thuật lập trình - Chương 3: Lớp và đối tượng" cung cấp cho người học các kiến thức: 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 lớp 1. Mời các bạn cùng tham khảo nội dung chi tiết.

Chủ đề:
Lưu

Nội dung Text: Bài giảng Kỹ thuật lập trình: Chương 3 - Trần Quang Hải Bằng

  1. Nội dung Chương 3 • 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. LỚP VÀ ðỐI TƯỢNG • 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 1 2 Lớp Lớp • Khai báo • Định nghĩa hàm thành viên class { Thuộc tính truy cập : Toán tử chỉ phạm vi Thuộc tính truy cập : :: ( 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 > Sơ ñồ lớp ñiểm trong < Câu lệnh return > không gian 2 chiều } 3 4
  2. Lớp ðối tượng • Ví dụ • 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]; 1000H 1008H x y x a y 1004H mang x y b 5 6 ðối tượng ðối tượng • Khởi tạo ñối tượng • Sử dụng ñối tượng – Dạng con trỏ : – Khi khởi tạo ñối tượng xong, ta có thể : VD: Diem *pa, *ds; • Truy xuất ñến dữ liệu thành viên của ñối tượng. pa= new Diem; ds= new Diem[10]; • Gọi hàm trên ñối tượng. delete pa; delete[] ds; tùy theo thuộc tính truy cập của các thành phần ñó. Chú ý: Phải cp và thu hi vùng nhớ cho con trỏ ñối tượng. 1060H *pa1060 x y *ds 1064 1064H x y 7 8
  3. ðối tượng ðối tượng • Ví dụ • 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ỏ. => 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; 9 *pb = a; pb->InDiem(); // In ra (10, 20) 10 Hàm xây dựng – Hàm hủy Hàm xây dựng – Hàm hủy • Hàm xây dựng (Constructor) • Hàm xây dựng (constructor) – Tại sao cần hàm xây dựng ? – 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). hiệu ứng phụ • 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. Cần phải khởi tạo giá trị ban ñầu cho các dữ liệu thành viên • Sẽ ñược tự ñộng gọi khi khởi tạo ñối tượng. 11 12
  4. Hàm xây dựng – Hàm hủy Hàm xây dựng – Hàm hủy • Ví dụ 1 về hàm xây dựng void main() { • Ví dụ 2 về hàm xây dựng // Goi Diem() Diem a; class Diem { // In (0,0) int x,y; a. InDiem(); public: // Diem(int,int) Diem();// xd mặc nhiên Diem b(10,5); Diem(int); // Diem(int) Diem(int,int); Diem c(3); ... Diem *pa = new Diem(); }; Diem *pb = new Diem(10,5); Diem::Diem() Diem *pc = new Diem(3); { x=y=0; } // Goi Diem() Diem::Diem(int a) Diem ds1[10]; { x = y = a; } // Goi Diem() Diem::Diem(int h, int t) Diem *ds2 = new Diem [10]; { x=h; y=t; } ... } 13 14 Hàm xây dựng – Hàm hủy Các loại ñối tượng • Hàm hủy (destructor) • ðối tượng toàn cục - ðối tượng cục bộ – Dùng ñể thu hồi vùng nhớ ñã cấp cho các dữ liệu thành – ðối tượng toàn cục : viên là con trỏ của ñối tượng, khi hủy bỏ ñối tượng. • Khai báo ngoài các lớp và ngoài hàm main(). => delete các con trỏ là dữ liệu thành viên. • Sẽ ñược khởi tạo (tự ñộng gọi hàm xây dựng tương – Một lớp có thể không có hoặc chỉ có duy nhất 1 hàm hủy. ứng) trước khi hàm main() thực thi. – Cú pháp : ~ ( ) { … } • 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(). – Không ñược gọi trực tiếp mà sẽ ñược tự ñộng gọi khi hủy bỏ ñối tượng. – ðối tượng cục bộ : VD: Diem::~Diem () { } • Khai báo trong một hàm. SinhVien::~SinhVien() { • Sẽ khởi tạo trong khi thực thi hàm ñó. delete[] hoten; • Sẽ ñược hủy bỏ ( tự ñộng gọi hàm hủy cho ñối tượng } 15 ñó) trước khi hàm kết thúc. 16
  5. Dữ liệu và hàm thành viên tĩnh Dữ liệu và hàm thành viên tĩnh • Dữ liệu thành viên tĩnh (static) • Hàm 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 lập với 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. => khi gọi hàm không cần ñối tượng nào : – Giống như 1 biến toàn cục. :: :: (danh sách tham số) – Phải ñược khởi tạo bên ngoài của lớp. – Chỉ cần thêm static vào trước khai báo hàm trong lớp. – Thường ñược sử dụng ñể ñếm số lượng ñối tượng hiện có. – Giống như 1 hàm toàn cục. Tại thời ñiểm này 17 18 dem = ? Khai thác một lớp Khai thác một lớp • Tránh ñịnh nghĩa lớp nhiều lần : • Khai báo lớp : file .hpp • ðịnh nghĩa hàm thành viên : file .cpp ðể tránh #include nhiều • Sử dụng lớp : trong 1 file khác vidu.cpp lần một lớp có trong nhiều tập tin khác nhau, Diem.hpp Diem.cpp Vidu.cpp ta dùng các từ khóa tiền #include “Diem.hpp” #include “Diem.cpp” class Diem { Diem::Diem() void main () { xử lý. {… } Diem a; int x,y; #ifndef void Diem::InDiem() a.InDiem(); ... {…} …. }; ... } #define #endif 19 20
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
4=>1