Chương 4 Kế thừa C++

25 472 1
Chương 4 Kế thừa C++

Đ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

Chương 4_Kế thừa C++ viện Điện Tử Truyền Thông Đại Học BK HN

Chương 4: Kế thừa Phần 2: Ngôn ngữ lập trình C++ Các nội dung chính  Các khái niệm cơ bản  Phân loại kế thừaKế thừa đơn  Tính đa hình  Lớp trừu tượng  Kế thừa bội Các khái niệm cơ bản  Kế thừa (inheritance): Lớp B kế thừa lớp A, tức là B sẽ có thể tái sử dụng các thành phần dữ liệu và các thao tác trong A A B Lớp cha (lớp cơ sở) Lớp con (lớp dẫn xuất) Ví dụ về sự kế thừa Lớp Số +, -, *, / <,>,==,… Giá trị Lớp Số Thực +, -, *, / <,>,==,… Giá trị thực Lớp Số Nguyên +, -, *, / <,>,==,… Giá trị nguyên Lớp Phân Số +, -, *, / <,>,==,… Giá trị mẫu số Lớp Số Phức +, -, *, / <,>,==,… Giá trị phức Phân loại kế thừa  Có hai cách phân loại  Theo mức độ kế thừa: có 2 mức  Public: bảo toàn mức độ che dấu của các thành phần của lớp cơ sở trong lớp dẫn xuất  Private: đưa các mức che dấu của các thành phần trong lớp cơ sở lên mức private trong lớp dẫn xuất  Theo số lượng lớp cơ sở: có 2 loại  Kế thừa đơn  Kế thừa bội Cú pháp khai báo kế thừaKế thừa đơn  Trong đó E có thể là:  public  private  Kế thừa bội class B: <E> A { //Đ/n phần thân của lớp dẫn xuất }; class C: <E A > A, <E B > B { //Đ/n phần thân của lớp dẫn xuất }; Kế thừa đơn  Chương trình 4.1: xây dựng hai lớp số Real và Complex, trong đó lớp Complex kế thừa lớp Real class Real { protected: float r; public: Real(float a=0){ r = a; } //tiếp ở hình bên }; class Real { //tiếp từ hình bên Real Add(Real x){ Real z; z.r = x.r +r; return z; } void Print(){ cout<<r; } }; Chương trình 4.1 (tiếp) class Complex: public Real { float i; //Phan ao public: Complex(float rp=0, float ip=0):Real(rp){ i=ip; } //tiếp ở hình bên }; class Complex: public Real { //tiếp từ hình bên Complex Add(Complex x){ Complex a; a.r = x.r +r; a.i = x.i +i; return a; } void Print(){ Real::Print(); cout<<"+j"<<i; } }; Chương trình 4.1 (tiếp và hết) main(){ Real x, y(10.5),z(25.5); x = y.Add(z); cout<<"x="; x.Print(); cout<<endl; Complex c, d(5,6), e(6,9); c = d.Add(e); cout<<"c="; c.Print(); cout<<endl; return system("PAUSE"),EXIT_SUCCESS; } Kết quả chạy [...]... dẫn xuất; hoặc tiếp tục là hàm ảo trong lớp đó, khi đó lớp dẫn xuất này lại là trừu tượng Kế thừa bội  Bài tập về nhà nghiên cứu Tóm tắt  Khái niệm cơ bản về kế thừa  Cách phân loại kế thừa  Tính đa hình và cách cài đặt  Sự khác nhau giữa hàm ảo và hàm thông thường  Lớp trừu tượng và hàm ảo thuần túy  Kế thừa bội Bài tập  Bài 1: Xây dựng cây các lớp số: gồm các lớp Number, Integer, Fraction,... z.r = x.r +r; return z; } virtual void Print(){ cout

Ngày đăng: 27/03/2014, 11:55

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan