1. Trang chủ
  2. » Tất 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

7 3 0

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

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Hàm xây dựng, hàm hủy và việc khởi tạo đối tượng
Trường học Trường Đại Học Bách Khoa Hà Nội
Chuyên ngành Lập trình hướng đối tượng C++
Thể loại Bài giảng
Thành phố Hà Nội
Định dạng
Số trang 7
Dung lượng 568,41 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

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[.]

Trang 1

HÀM XÂY DỰNG, HÀM HỦY VÀ VIỆC KHỞI TẠO ĐỐI TƯỢNG

1

Chương 5

Trang 2

• 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

Trang 3

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 các thuộc tính.

– Cấp vùng nhớ cho con trỏ thành viên.

3

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; }

….

};

Trang 4

• Ví dụ:

4

class SinhVien {

char mssv[8];

char* hoten;

int namsinh;

float diemtb;

public :

strcpy(mssv,””);

hoten = new char[50];

namsinh = 1980;

diemtb = 0;

}

oat);

… };

class Stack {

float * ds;

int soluong;

int vitri;

public :

{ soluong = max;

vitri = 0;

ds = new

float [soluong];

}

int n);

… };

Cấp vùng nhớ

cho con trỏ

Trang 5

• 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ố.

5

class Diem {

int x, y;

public :

void InDiem();

void NhapDiem();

void GanGiaTri( int ,

int );

int GiaTriX();

int GiaTriY();

};

// Định nghĩa các hàm

thành viên

a

x y

1000H

void main () { Diem a;

Diem *pa = new Diem();

Diem ds1[10];

Diem *ds2 = new

Diem[20];

… }

Không có giá trị

đầu nên dễ gây ra

hiệu ứng phụ

Hàm xây dựng

Trang 6

• 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.

6

void main () {

PhanSo a;

PhanSo b(3);

PhanSo c(2,5);

PhanSo d[3];

PhanSo *pa = new PhanSo;

PhanSo *pa1 = new PhanSo();

PhanSo *pa2 = new PhanSo[5];

PhanSo *pb = new PhanSo(3);

PhanSo *pc = new

PhanSo(2,5);

}

void main () { Stack a;

Stack b(5);

Stack c[5];

Stack *pa = new Stack(); Stack *pb = new Stack(40); Stack *pc = new Stack[40]; float data[40];

for ( int i=0;i<10;i++) data[i]=i;

Stack d(data, 30, 10);

… }

Trang 7

• 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.

7

c

tu mau

2 5

c

tu mau

PhanSo c(2,5);

PhanSo

*pa2 = new

PhanSo[5];

tu mau

1000H

*pa2

100

1000H

*pa2

100 0

0

1 01 01 01 01

0

120 0 5

*ds soluong vitri

1200H

Stack

b(5);

*ds soluong vitri

Hàm xây dựng

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

🧩 Sản phẩm bạn có thể quan tâm