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
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] ...
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ì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 Hàm xây dựng Hàm xây dựng sao chépTài liệu liên quan:
-
164 trang 20 0 0
-
Chapter 5: MẢNG - CON TRỎ THAM CHIẾU
10 trang 17 0 0 -
60 trang 15 0 0
-
Bài giảng LINQ to SQL - Lương Trần Hy Hiến
36 trang 14 0 0 -
Bài giảng Lập trình hướng đối tượng C++ - Chương mở đầu: Giới thiệu tổng quan
15 trang 14 0 0 -
Bài giảng Kỹ thuật lập trình: Chương 5 - Trần Quang Hải Bằng
5 trang 14 0 0 -
Bài giảng Lập trình hướng đối tượng C++ - Chương 4: Hàm
8 trang 14 0 0 -
Bài giảng Lập trình hướng đối tượng và C++: Chương 3
5 trang 14 0 0 -
Giáo trình Lập trình hướng đối tượng và C++ - Phạm Văn Ất (Chủ biên)
337 trang 13 0 0 -
Bài giảng Nhập môn công nghệ phần mềm: Chương 10 - TS. Nguyễn Văn Hiệp
15 trang 13 0 0