tailieunhanh - Hướng dẫn tự học và thực hành Visual Basic C++ 2008 part 4

Tham khảo tài liệu 'hướng dẫn tự học và thực hành visual basic c++ 2008 part 4', công nghệ thông tin, kỹ thuật lập trình phục vụ nhu cầu học tập, nghiên cứu và làm việc hiệu quả | Phẩn IV Các lớp 155 22 Sử dụrựỊ sựjt ừ_aj iể ẩo_ Tiêt kiệm thời gian bang cách N Tìm hiểu sự thừa kế Mi Định nghĩa sự thừa kế ảo virtual inheritance M Thưc thi sự thừa kê ảo M Test và sửa mã Không có gì ngẫu nhiên sách này dành một ít thời gian đế tìm hiểu các lớp được tạo như thê nào - và cách bạn có thế thừa kế từ chúng như thô nào Sự thừa kè inheritance cho phép bạn tiết kiệm thời gian và công sức bằng việc cung cốp một cơ sở mã sẩn sàng đưực tái sứ dụng trong các lóp riêng của bạn. Tuy nhiên khi bạn thiết kế lớp có một số vân dề sẽ gây cho bạn phiền toái và lo âu Một vấn dề như vậy nằm trong sự đa thừa kế multiple inheritance Trong khi sự đa thừa kê có thể giải quyết nhiều vấn dề trong thiết kê lớp nhưng nó củng cỏ thê gây nhiều vâ n đề. Ví dụ xem xét trường hợp của Listing . Listing Ví dụ vể sự da thừa kế class Base T char name public virtual const char Name void setName const char n Ỉ class A public Base I i class B public Base I class c public A public B 156 Phẩn IV Các lớp Listing trình bày một vấn đề vol sự đa thừa kế mà bạn có lẽ không nghĩ có thế từng xây ra - nhưng nó xảy ra gần như luôn luôn. Khi chúng ta có một lớp cư sử mù tất cả các lớp trong hộ thống thừa kế thông tin từ đó - chàng hạn như một lờp Object lưu trừ tên đó là kiéui cùa lớp - chúng ta gặp phiĩi vấn đề thừa kế từ cùng một lớp cơ sờ trong nhiều cách. Tình huống này thường dưực gọi là tam giác chét cùa lập trình hường đối tượng. Nếu bạn thế hiện cụ thể một đối tượng có kiêu c như trong mã dưực minh hoạ trong Listing trình biên dịch và linker trình liên kôt sẽ không phản đối - mọi thứ dường như làm việc tót. Tuy nhiên vân đề xuất hiện khi chúng ta cố sừ dụng các phương thức trong lớp cơ sở Base. Nếu chúng ta viết const char name c. Name thì trình biên dịch ngay tức thì đưa ra một lỗi cho dòng mã nguồn. Lý do rõ ràng Chúng ta gọi phương thức name nào ở đây có hai lớp Base trong cây thừa kế cho lớp c. Nó phai ỉà lóp trong lớp cơ sỏ A hoạc ớp

TỪ KHÓA LIÊN QUAN