Danh mục

Bài giảng Lập trình hướng đối tượng C++‎ - Chương 5: Hàm xây dựng, hàm hủy và việc khởi tạo đối tượng

Số trang: 20      Loại file: pdf      Dung lượng: 640.05 KB      Lượt xem: 8      Lượt tải: 0    
Hoai.2512

Hỗ trợ phí lưu trữ khi tải xuống: 19,000 VND Tải xuống file đầy đủ (20 trang) 0
Xem trước 2 trang đầu tiên của tài liệu này:

Thông tin tài liệu:

Bài giảng Lập trình hướng đối tượng C++‎ - Chương 5: Hàm xây dựng, hàm hủy và việc khởi tạo đối tượng cung cấp cho người học những kiến thức như: Hàm xây dựng; Hàm hủy; Hàm xây dựng sao chép; Thuộc tính của 1 lớp là đối tượng. Mời các bạn cùng tham khảo!
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 5: Hàm xây dựng, hàm hủy và việc khởi tạo đối tượng Chương 5HÀM XÂY DỰNG, HÀM HỦY VÀ VIỆC KHỞI TẠO ĐỐI TƯỢNG 1Nội dung • Hàm xây dựng • Hàm hủy • Hàm xây dựng sao chép • Thuộc tính của 1 lớp là đối tượng 2Hàm xây dựng• Mục đích: khởi tạo giá trị ban đầu cho đối tượng – Gán giá trị đầu cho các thuộc tính. – Cấp vùng nhớ cho con trỏ thành viên. class Diem { class PhanSo { int x, y; int tu, mau; public: public: Diem(int a) PhanSo() { x = y = a; } { tu=0; mau=1; } Diem(int h, int t) PhanSo(int x) { x = h; y=t; } { tu=x; mau=1; } …. PhanSo(int t, int m) }; { tu = t; mau=m; } …. }; 3Hàm xây dựng• Ví dụ:class SinhVien { class Stack { char mssv[8]; float *ds; char* hoten; int soluong; int namsinh; int vitri; float diemtb; public: Cấp vùng public: Stack(int max = 10) nhớ SinhVien() { { cho con trỏ strcpy(mssv,””); soluong = max; hoten = new char[50]; vitri = 0; namsinh = 1980; ds = new diemtb = 0; float[soluong]; } }SinhVien(char*,char*,int,fl Stack(float* d, int m,oat); int n); … … }; }; 4Hàm xây dựng• Nếu không có định nghĩa hàm xây dựng: – Mặc nhiên sẽ tự động có 1 hàm xây dựng không tham số. – Chỉ có 1 cách khởi tạo đối tượng theo dạng không tham số.class Diem { void main() { int x, y; Diem a; public: Diem *pa = new Diem(); void InDiem(); Diem ds1[10]; void NhapDiem(); Diem *ds2 = new void GanGiaTri(int, Diem[20];int); … int GiaTriX(); } int GiaTriY(); 1000H … x … Không có giá trị}; y … đầu// Định nghĩa các hàm a nên dễ gây rathành viên hiệu ứng phụ5...Hàm xây dựng• Nếu có định nghĩa ít nhất 1 hàm xây dựng: – Có bao nhiêu hàm xây dựng sẽ có bấy nhiêu cách khởi tạo đối tượng theo dạng đã định nghĩa.void main() { void main() { PhanSo a; Stack a; PhanSo b(3); Stack b(5); PhanSo c(2,5); Stack c[5]; PhanSo d[3]; Stack *pa = new Stack(); PhanSo *pa = new PhanSo; Stack *pb = new Stack(40); PhanSo *pa1 = new PhanSo(); Stack *pc = new Stack[40]; PhanSo *pa2 = new PhanSo[5]; float data[40]; PhanSo *pb = new PhanSo(3); for(int i=0;iHàm xây dựng• Trình tự thực hiện: – Đối tượng được tạo ra trước. – Hàm xây dựng sẽ gọi sau trên đối tượng. PhanSo c(2,5); tu tu 2 mau mau 5 c cPhanSo 1000H 1000H*pa2 = new 100 tu 100 tu 0 0 0 0 0 0 mau 0 mau 1 1 1 1 1PhanSo[5]; *pa2 *pa2 1200H 120 … *ds *ds 0 Stack soluong … soluong 5 b(5); … 0 vitri vitri 7Hàm hủy • Mục đích: thu hồi vùng nhớ đã cấp cho con trỏ là dữ liệu thành viên => delete con trỏ.class SinhVien { class Stack { char mssv[8]; float *ds; char* hoten; int soluong; int namsinh; int vitri; float diemtb; public: public: Stack(int max = 10) { SinhVien() { soluong = max; strcpy(mssv,””); vitri = 0; hoten = new char[50] ...

Tài liệu được xem nhiều: