Trình xây dựng kế thừa trong C++ là gì

Trinh Xay Dung Ke Thua Trong C La Gi



Trong C++, di sản là một khái niệm quan trọng trong lập trình hướng đối tượng. Lớp dẫn xuất có thể kế thừa các đặc điểm và hành vi của lớp cơ sở nhờ vào di sản khả năng trong C++. Một lớp dẫn xuất ngay lập tức kế thừa tất cả các thành viên của lớp cơ sở khi nó được hình thành. Hàm tạo của lớp dẫn xuất cũng cần phải khởi tạo các thành viên của lớp cơ sở. Trong C++, di sản là một tính năng mạnh mẽ cho phép các nhà phát triển sử dụng lại mã, nâng cao hiệu quả và sắp xếp mã thành các hệ thống phân cấp hợp lý.

Cùng với tính kế thừa, hàm tạo cũng rất cần thiết trong C++. MỘT người xây dựng là một hàm thành viên duy nhất cho phép bạn khởi tạo các thuộc tính của đối tượng. MỘT Hàm tạo kế thừa là một hàm tạo được sử dụng để khởi tạo cả các đối tượng của lớp cơ sở và lớp dẫn xuất mà lớp dẫn xuất đã kế thừa. Các thừa kế xây dựng chịu trách nhiệm khởi tạo cả thành viên lớp cơ sở kế thừa và thành viên lớp dẫn xuất. Để đạt được điều này, hàm tạo gọi hàm tạo của lớp cơ sở, đảm bảo rằng tất cả các thành viên của lớp dẫn xuất được khởi tạo đúng cách, bao gồm cả những thành viên được kế thừa từ lớp cơ sở.

Bằng cách gọi hàm tạo của lớp cơ sở và truyền cho nó các tham số cần thiết, thừa kế xây dựng khởi tạo các thành viên của lớp cơ sở. Điều này được thực hiện bằng cách sử dụng 'lớp cơ sở (args)' danh sách khởi tạo trong hàm tạo. Các hướng dẫn cụ thể hơn cho lớp dẫn xuất được cung cấp trong phần thân hàm tạo.







Cú pháp cho kế thừa một lớp trong C++ là:



lớp học Lớp có nguồn gốc : accessSpecifier BaseClass {
// các thành viên trong lớp
} ;

Lớp mới được hình thành trong trường hợp này, 'Lớp có nguồn gốc', sẽ kế thừa từ “Lớp cơ sở”. Mức độ truy cập vào các thành viên kế thừa được chỉ định bởi “ truy cậpSpecifier”. C++ sử dụng ba loại chỉ định truy cập, cụ thể là “công khai”, “riêng tư”, “được bảo vệ” . từ 'công cộng' chỉ ra rằng lớp dẫn xuất có quyền truy cập vào các thành viên công khai của lớp cơ sở. Lớp dẫn xuất không có quyền truy cập vào các thành viên của lớp cơ sở, theo 'riêng tư' người chỉ định. Lớp dẫn xuất có quyền truy cập vào các thành viên của lớp cơ sở được bảo vệ mà các lớp con của chúng có thể kế thừa, theo 'được bảo vệ' người chỉ định.



Ví dụ về Kế thừa trong C++

Ví dụ sau đây cho thấy việc thực hiện Di sản trong C++:





#include
sử dụng không gian tên tiêu chuẩn ;

lớp học Động vật {
công cộng :
khoảng trống ăn ( ) {
cout << 'Tôi có thể ăn!' << kết thúc ;
}
khoảng trống ngủ ( ) {
cout << 'Tôi có thể ngủ!' << kết thúc ;
}
} ;
lớp học Con mèo : công cộng Động vật {
công cộng :
khoảng trống meo ( ) {
cout << 'Tôi có thể kêu meo meo!' << kết thúc ;
}
} ;
int chủ yếu ( ) {
mèo mèo1 ;
con mèo1. ăn ( ) ;
con mèo1. ngủ ( ) ;
con mèo1. meo ( ) ;

trở lại 0 ;
}

Đoạn mã đã cho định nghĩa hai lớp, 'Động vật' 'Con mèo' , Ở đâu 'Con mèo' có nguồn gốc từ 'Động vật' . Cả hai lớp đều có một số chức năng thành viên, chẳng hạn như 'ăn ngủ' , Và 'meo' . Hàm main tạo một đối tượng của lớp 'Con mèo' và gọi thừa hưởng chức năng từ lớp 'Động vật' cũng như chức năng cụ thể của lớp 'Con mèo' , đó là 'meo' . Chương trình xuất văn bản ra bàn điều khiển, cho biết con mèo có thể ăn, ngủ và kêu meo meo.

đầu ra



Khi một lớp được dẫn xuất, tất cả các biến thành viên và hàm thành viên của lớp cơ sở được chuyển sang lớp dẫn xuất. Các thừa hưởng khả năng truy cập của các thành viên trong lớp dẫn xuất được xác định bởi bộ xác định quyền truy cập. Lớp dẫn xuất cũng có thể thay thế các tính năng mới cho những tính năng đã tồn tại. Nó có thể thêm các cách triển khai mới cho các phương thức của lớp cơ sở, đồng thời thêm các biến và hàm thành viên mới.

Điều quan trọng cần nhớ là thừa kế xây dựng phải được sử dụng để gọi rõ ràng hàm tạo của lớp cơ sở với các tham số cần thiết nếu lớp cơ sở có hàm tạo mặc định hoặc nếu nó không có sẵn.

Phần kết luận

Tính năng mạnh mẽ của di sản trong C++ cho phép các lớp sử dụng lại mã bằng cách kế thừa các đặc điểm và hành động từ các lớp khác. Một tính năng hữu ích của C++ thừa kế xây dựng cho phép các lớp dẫn xuất kế thừa các thuộc tính, phương thức và thành viên dữ liệu của lớp cơ sở. Với việc bổ sung danh sách khởi tạo cho các hàm tạo của lớp cơ sở, nó được định nghĩa bằng cú pháp giống như một hàm tạo tiêu chuẩn. Lập trình viên C++ có thể giảm thiểu sao chép mã và nâng cao cấu trúc mã bằng cách sử dụng thừa kế xây dựng . Để tạo hệ thống phân cấp lớp phức tạp trong lập trình hướng đối tượng, đây là một công cụ quan trọng.