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

20 15 0
Bài giảng Lập trình hướng đối tượng C++‎ - Chương 3: Lớp và đối tượng

Đ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

Bài giảng Lập trình hướng đối tượng C++‎ - Chương 3: Lớp và đối tượng cung cấp cho người học những kiến thức như: 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. Mời các bạn cùng tham khảo!

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

Ngày đăng: 19/08/2021, 14:50

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan