
Bài giảng Lập trình hướng đối tượng C++ - Chương 3: Lớp và đối tượng
Thông tin tài liệu:
Nội dung trích xuất từ 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 Chương 3LỚP VÀ ĐỐI TƯỢNG 1Nộ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 2Lớp• Khai báoclass { Thuộc tính truy cập : Thuộc tính truy cập : }; Sơ đồ lớp điểm trong không gian 2 chiều 3Lớp• Định nghĩa hàm thành viên Toán tử chỉ phạm vi :: ( 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 >} 4Lớ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]; 1000H 1008H x y x a y 1004H mang x y b 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ấp và thu hồi vùng nhớ cho con trỏ đối tượng. 106 1060H *pa x 0 y 106 1064H *ds 4 x y 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 đó. 8Đối tượng• Ví dụ 9Đố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 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) 10Hà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 cho các dữ liệu thành viên 11Hà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. 12Hàm xây dựng – Hàm hủy• Ví dụ 1 về hàm xây dựng void main() { // 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; } ... } 13Hàm xây dựng – Hàm hủy• Ví dụ 2 về hàm xây dựng 14Hà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 : ~ ( ) { … } – 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; } 15Các loại đối tượng• Đối tượng toàn cục ...
Tìm kiếm theo từ khóa liên quan:
Bài giảng Lập trình hướng đối tượng C++ Lập trình hướng đối tượng C++ Khởi tạo đối tượng Khai báo lớp Hàm xây dựngTài liệu có liên quan:
-
Bài giảng Lập trình hướng đối tượng (OOP): Ôn tập
184 trang 25 0 0 -
Bài giảng Ôn tập Lập trình hướng đối tượng (OOP)
15 trang 23 0 0 -
Chapter 5: MẢNG - CON TRỎ THAM CHIẾU
10 trang 23 0 0 -
164 trang 22 0 0
-
Bài giảng Nhập môn Java: Bài 3 – Võ Tấn Dũng
54 trang 21 0 0 -
Bài giảng Lập trình hướng đối tượng và C++: Chương 3
5 trang 20 0 0 -
60 trang 19 0 0
-
Bài giảng Lập trình hướng đối tượng C++ - Chương 4: Hàm
8 trang 19 0 0 -
Bài giảng Object-Oriented programming: Chương 3 - Văn Thị Thiên Trang
21 trang 18 0 0 -
Bài giảng Lập trình hướng đối tượng - Chương 2: Đối tượng và lớp
21 trang 18 0 0 -
Giáo trình Lập trình hướng đối tượng - TS. Vũ Bá Anh &ThS. Hà Văn Sang
113 trang 18 0 0 -
Bài giảng: Xây dựng lớp và giao diện
79 trang 17 0 0 -
Bài giảng Lập trình nâng cao: Chương 3 - Lý Anh Tuấn
50 trang 17 0 0 -
Bài giảng LINQ to SQL - Lương Trần Hy Hiến
36 trang 17 0 0 -
8 trang 17 0 0
-
Bài giảng Lập trình Java: Bài 4 - Nguyễn Đức Hiển
47 trang 17 0 0 -
Bài giảng Kỹ thuật lập trình: Chương 3 - Trần Quang Hải Bằng
5 trang 17 0 0 -
Bài giảng Lập trình hướng đối tượng C++ - Chương 8: Thừa kế
20 trang 16 0 0 -
Bài giảng Lập trình hướng đối tượng: Chương 3 - Nguyễn Minh Thành
15 trang 16 0 0 -
Bài giảng Ngôn ngữ lập trình Java: Chương 2 - TS. Phan Nguyên Hải
67 trang 16 0 0