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

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

25 472 1

Đ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 25
Dung lượng 475,58 KB

Nội dung

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