Bài giảng Lập trình hướng đối tượng và C++: Chương 3

Đăng ngày | Thể loại: | Lần tải: 0 | Lần xem: 0 | Page: 5 | FileSize: M | File type: PDF
of x

Bài giảng Lập trình hướng đối tượng và C++: Chương 3. Nội dung chương 3 trình bày đến người học những vấn đề liên quan đến Lớp và đối tượng, cụ thể như: 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,...Mời các bạn cùng tham khảo!. Giống các tài liệu khác được bạn đọc chia sẽ hoặc do tìm kiếm lại và giới thiệu lại cho các bạn với mục đích tham khảo , chúng tôi không thu phí từ thành viên ,nếu phát hiện tài liệu phi phạm bản quyền hoặc vi phạm pháp luật xin thông báo cho website ,Ngoài giáo án bài giảng này, bạn có thể download Download tài liệu,đề thi,mẫu văn bản miễn phí phục vụ tham khảo Một số tài liệu tải về sai font không xem được, có thể máy tính bạn không hỗ trợ font củ, bạn download các font .vntime củ về cài sẽ xem được.

https://tailieumienphi.vn/doc/bai-giang-lap-trinh-huong-doi-tuong-va-c-chuong-3-geubuq.html

Nội dung


N i dung
• L p: khai báo, ñ nh nghĩa hàm thành viên.

Chương 3

• ð i tư ng: khai báo, s d ng, gán.

L P VÀ ð I TƯ NG

• 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

1

2

L p

L p

• Khai báo

• Đ nh nghĩa hàm thành viên

class {
Thu c tính truy c p :

Thu c tính truy c p :

};

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 >

Sơ ñ l p
ñi m trong
không gian
2 chi u

< Câu l nh return >
}

3

4

L p

ð i tư ng

• Ví d

• 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

x
y
a

1004H

x
y

1008H
x
y
mang

b
5

6

ð i tư ng

ð i tư ng

• Kh i t o ñ i tư ng

• S d ng ñ i tư ng

– D ng con tr :
VD:

– 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 ñó.

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.
*pa1060

*ds 1064

x
y

1060H

1064H
x
y
7

8

ð i tư ng

ð i tư ng

• Ví d

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

a;

a.KhoiTao(10,20);

b, *pb;

b = a;

// In ra (10, 20)

b.InDiem();

pb = new Diem;
9

*pb = a; pb->InDiem();

// In ra (10, 20)

Hàm xây d ng – Hàm h y

Hàm xây d ng – Hàm h y

• Hàm xây d ng (Constructor)

• Hàm xây d ng (constructor)

– T i sao c n hàm xây d ng ?

10

– 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).
hi u

ng ph

• 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 :
C n ph i kh i t o giá tr ban ñ u
cho các d li u thành viên

• Không ñư c g i tr c ti p.
• S ñư c t ñ ng g i khi kh i t o ñ i tư ng.
11

12

Hàm xây d ng – Hàm h y

Hàm xây d ng – Hàm h y

• Ví d 1 v hàm xây d ng

• Ví d 2 v hàm xây d ng

class Diem {
int x,y;
public:
Diem();// xd m c nhiên
Diem(int);
Diem(int,int);
...
};
Diem::Diem()
{ x=y=0; }
Diem::Diem(int a)
{ x = y = a; }
Diem::Diem(int h, int t)
{ x=h; y=t; }

void main() {
// Goi Diem()
Diem a;
// In (0,0)
a. InDiem();
// Diem(int,int)
Diem b(10,5);
// Diem(int)
Diem c(3);
Diem *pa = new Diem();
Diem *pb = new Diem(10,5);
Diem *pc = new Diem(3);
// Goi Diem()
Diem ds1[10];
// Goi Diem()
Diem *ds2 = new Diem [10];
...
}
13

14

Hàm xây d ng – Hàm h y

Các lo i ñ i tư ng

• Hàm h y (destructor)

• ð i tư ng toàn c c - ð i tư ng c c b

– 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:

– ð i tư ng toàn c c :
• Khai báo ngoài các l p và ngoài hàm main().
• S ñư c kh i t o (t ñ ng g i hàm xây d ng tương
ng) trư c khi hàm main() th c thi.
• S ñư c h y b ( t ñ ng g i hàm h y cho ñ i tư ng )
sau khi k t thúc hàm main().
– ð i tư ng c c b :
• Khai báo trong m t hàm.

Diem::~Diem () { }
SinhVien::~SinhVien() {
delete[] hoten;
}

• S kh i t o trong khi th c thi hàm ñó.
15

• S ñư c h y b ( t ñ ng g i hàm h y cho ñ i tư ng
ñó) trư c khi hàm k t thúc.
16

D

li u và hàm thành viên tĩnh

D

• D li u thành viên tĩnh (static)

li u và hàm thành viên tĩnh

• Hàm thành viên tĩnh (static)

– Là d li u thành viên dùng chung cho t t c các ñ i tư ng
c a cùng 1 l p => t n t i ñ c l p v i các ñ i tư ng.
– Gi ng như 1 bi n toàn c c.

– ð c l p v i các ñ i tư ng
=> khi g i hàm không c n ñ i tư ng nào :
::
:: (danh sách tham s )

– Ph i ñư c kh i t o bên ngoài c a l p.

– Ch c n thêm static vào trư c khai báo hàm trong l p.

– Thư ng ñư c s d ng ñ ñ m s lư ng ñ i tư ng hi n có.

– Gi ng như 1 hàm toàn c c.

T i th i ñi m này
17
dem = ?

Khai thác m t l p

Khai thác m t l p
• Tránh ñ nh nghĩa l p nhi u l n :

• Khai báo l p : file .hpp
• ð nh nghĩa hàm thành viên : file .cpp
• S d ng l p : trong 1 file khác

18

ð tránh #include nhi u

vidu.cpp

l n m t l p có trong
nhi u t p tin khác nhau,

Diem.hpp

#include “Diem.hpp”
class Diem {
int x,y;
...
};

Diem.cpp

Vidu.cpp
#include “Diem.cpp”

Diem::Diem()
{… }
void Diem::InDiem()
{…}
...

void main () {
Diem a;
a.InDiem();
….
}

ta dùng các t
x

khóa ti n

lý.
#ifndef
#define
#endif

19

20

1123862

Tài liệu liên quan


Xem thêm