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

7 2 0
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

Đang tải... (xem toàn văn)

Thông tin tài liệu

HÀM XÂY DỰNG, HÀM HỦY VÀ VIỆC KHỞI TẠO ĐỐI TƯỢNG 1 Chương 5 Nộ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 2 Hàm xây dựng • Mục đích khởi tạo giá trị ban[.]

Chương HÀM XÂY DỰNG, HÀM HỦY VÀ VIỆC KHỞI TẠO ĐỐI TƯỢNG Nội dung • Hàm xây dựng • Hàm hủy • Hàm xây dựng chép • Thuộc tính lớp đối tượng Hà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 thuộc tính – Cấp vùng nhớ cho trỏ thành viên class Diem { int x, y; public: Diem(int a) { x = y = a; } Diem(int h, int t) { x = h; y=t; } … }; class PhanSo { int tu, mau; public: PhanSo() { tu=0; mau=1; } PhanSo(int x) { tu=x; mau=1; } PhanSo(int t, int m) { tu = t; mau=m; } … }; Hà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 trỏ strcpy(mssv,””); soluong = max; hoten = new char[50]; vitri = 0; ds = new namsinh = 1980; diemtb = 0; float[soluong]; } } SinhVien(char*,char*,int,fl Stack(float* d, int m, oat); int n); … … }; }; Hàm xây dựng • Nếu khơng có định nghĩa hàm xây dựng: – Mặc nhiên tự động có hàm xây dựng khơng tham số – Chỉ có cách khởi tạo đối tượng theo dạng không tham số class Diem { int x, y; public: void InDiem(); void NhapDiem(); void GanGiaTri(int, int); int GiaTriX(); int GiaTriY(); … }; // Định nghĩa hàm thành viên void main() { Diem a; Diem *pa = new Diem(); Diem ds1[10]; Diem *ds2 = new Diem[20]; … } x y … … a 1000H Khơng có giá trị đầu nên dễ gây hiệu ứng phụ Hàm xây dựng • Nếu có định nghĩa hàm xây dựng: – Có hàm xây dựng có 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;i

Ngày đăng: 03/03/2023, 07:29

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

Tài liệu liên quan