1. Trang chủ
  2. » Công Nghệ Thông Tin

Ngôn ngữ lập trình C - Chương 7 doc

24 177 0
Tài liệu đã được kiểm tra trùng lặp

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

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 24
Dung lượng 311,76 KB

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

Nội dung

Trang 1

Ch −¬ ng 7Thõa kÕ

Trang 2

7.1 Tæng quan vÒ thõa kÕ vµ ®a h×nh

Trang 3

7.1 Tæng quan vÒ thõa kÕ vµ ®a h×nh

Th a k cho phép nâng cao kh n ng s d ng l i ch ng trình.

– Không ph i biên d ch l i các thành ph n ch ng trình đã có trong các

Trang 4

7.1 Tæng quan vÒ thõa kÕ vµ ®a h×nh

Trang 9

Con tr , tham chi u l p d n xu t và l p c s

– Con tr (tham chi u) l p c s có th tr đ n đ i t ng l p d n xu t.

– Con tr (tham chi u) l p d n xu t không th nh n đ a ch (gán giá tr )

c a đ i t ng l p c s (tr tr ng h p ép ki u).

Trang 12

7.2 Thõa kÕ

7.2.2 Hàm t o, hàm h y và tính th a k

– Hàm t o trong l p d n xu t (ti p)

L i g i t i hàm t o ng m đ nh c a l p c s đ c sinh ra m t cách t đ ng.

– Hàm t o c a l p d n xu t đ c g i đ b sung DLTP m i.

Trang 13

7.2 Thõa kÕ

7.2.2 Hàm t o, hàm h y và tính th a k

– Hàm t o sao chép trong l p d n xu t

Trong đ nh ngh a c a HTSC l p d n xu t có th mô t b t k hàm t o nào có m t trong l p c s

Trang 14

– Ch c n quan tâm t i các DLTP trong l p d n xu t, không c n đ ý

đ n đ i t ng thành ph n và DLTP th a k t l p c s

Trang 15

å n y sinh v n đ : xác đ nh HTP c th tu thu c vào th i đi m tham chi u đ i t ng nh th nào?

G n k t t nh (s m): xác đ nh HTP trong quá trình biên d ch.

– Trong g n k t t nh, vi c g i HTP đ c xác đ nh tr c trong ch ng trình và không thay đ i trong khi th c thi.

G n k t đ ng (mu n): xác đ nh HTP trong quá trình th c thi.

– Trong g n k t đ ng, vi c g i HTP đ c xác đ nh khi th c thi ch ng trình d a trên đ i t ng mà con tr đang ch a đ a ch

Trang 18

7.3 §a h×nh

7.3.1 Hàm o và tính đa hình

– Hàm o trong phân c p l p

Ph m vi c a khai báo virtual:

– Khi hàm đ c khai báo virtual trong m t l p c s , hàm đó đ c xem nh th hi n c a g n k t đ ng trong l p c s đó và trong t t c các l p d n xu t t nó.

Có th khai báo hàm o m t l p b t kì trong s đ th a k :

– N u m t hàm đ c khai báo bình th ng l p c s nh ng l i đ c khai báo o l p d n xu t å trình d ch s xem chúng có ki u g n k t khác nhau.

Hàm l p c s đ c coi là có ki u g n k t t nh, còn hàm l p d n

xu t đ c coi là có ki u g n k t đ ng.

– L p “c s ” và l p “d n xu t” đây đ c hi u r ng h n, xét trên cây

th a k

Trang 19

trong m t l p d n xu t v i các tham s khác å trình d ch coi hàm

đ nh ngh a ch ng đó là m t hàm hoàn toàn khác, không liên quan gì

đ n hàm o hi n t i å n u nó không đ c khai báo virtual thì nó

có tính ch t g n k t t nh.

– Nói chung, n u đ nh ngh a ch ng hàm o thì t t c các hàm đ nh

ngh a ch ng c a nó nên khai báo là virtual đ vi c xác đ nh l i g i hàm đ n gi n h n.

Trang 20

nó có th khác v i hàm hu c a l p c s

Gi i pháp cho v n đ này là khai báo hàm hu o cho l p c s

– Khi đó hàm hu c a các l p d n xu t là o mà không yêu c u chúng

ph i có cùng tên Ta g i đây là tính đa hình c a hàm o.

Trang 21

– Không th s d ng l p tr u t ng đ khai báo các đ i t ng, nh ng

đ c phép khai báo con tr

– L p tr u t ng là t ng quát hoá c a các l p th a k nó, và ng c l i các l p d n xu t là s c th hoá c a l p tr u t ng.

– M t hàm o thu n tuý khai báo trong m t l p tr u t ng c s ph i

đ c đ nh ngh a l i trong m t l p d n xu t ho c n u không thì ph i

đ c ti p t c khai báo o trong l p d n xu t.

Lúc này l p d n xu t m i l i là m t l p tr u t ng.

Trang 23

7.4 §a thõa kÕ

7.4.2 Cài đ t đa th a k trong C++

– L p c s o

Cú pháp chung:

class Lop_TK1 virtual Lop_CS { };

class Lop_TK2 virtual Lop_CS { };

class Lop_TK3: public Lop_TK1, public Lop_TK2 { };

Chú ý: khai báo này không nh h ng đ n các l p Lop_TK2

Lop_TK3, t c là l p Lop_TK1 s ch xu t hi n m t l n trong các

Trang 24

Các thao tác x lý trên danh sách liên k t, ng n x p, hàng đ i, cây

Ngày đăng: 06/08/2014, 01:20

TỪ KHÓA LIÊN QUAN

w