1. Trang chủ
  2. » Thể loại khác

+Lập Trình C,C++ sv cong nghe thuc pham Chapter4

86 252 0

Đ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 86
Dung lượng 170,5 KB

Nội dung

Chapter Inheritance Faculty of Information Technology Vinh University Mục đích   Chapter Inheritance   Giới thiệu đơn kế thừa, đa kế thừa Tính tương ứng bội Bài tập Kiểm tra Nội dung   Khái niệm kế thừa Kế thừa đơn giản  Chapter Inheritance      Truy nhập thành phần lớp sở Định nghĩa lại hàm thành phần Tính kế thừa lớp dẫn xuất Kế thừa nhiều lớp Lớp sở ảo Tương ứng bội Khái niệm   Chapter Inheritance   Tính kế thừa cho phép định nghĩa lớp dựa lớp có Một lớp kế thừa từ lớp khác gọi lớp dẫn xuất (derived class) Một lớp lớp khác kế thừa gọi lớp sở (base class) Lớp dẫn xuất kế thừa thành phần liệu hàm thành phần lớp sở đồng thời bổ sung thêm thành phần Khái niệm Chapter Inheritance  Sự kế thừa cho phép nhiều lớp dẫn xuất từ lớp sở, lớp dẫn xuất lớp sở cho lớp khác class A ( Lớp sở B C ) Kế thừa class B ( Lớp dẫn xuất A ) Kế thừa class C ( Lớp dẫn xuất A Lớp sở D.) Kế thừa class D( Lớp dẫn xuất C ) Kế thừa đơn giản  Ví dụ 4.1 Đơn kế thừa  Xây dựng lớp point mô tả điểm mặt phẳng, lớp gồm:  Chapter Inheritance      Hai thuộc tính (x,y) mơ tả toạ độ điểm Hàm thiết lập không tham số đặt x=0, y=0 Hàm thiết lập tham số (ox, oy) Hàm thiết lập chép Hàm tịnh tiến toạ độ điểm theo dx, dy Hàm hiển thị toạ độ điểm Kế thừa đơn giản  Xây dựng lớp coloredpoint mô tả điểm màu Lớp kế thừa từ lớp point bổ sung thêm thành phần:   Chapter Inheritance     Thuộc tính color mơ tả màu điểm Hàm thiết lập không tham số đặt x=0, y=0, color =0 Hàm thiết lập tham số (ox, oy, c) Hàm thiết lập chép Hàm hiển thị toạ độ điểm màu điểm Viết chương trình tạo điểm màu, gọi hàm hiển thị hàm tịnh tiến lớp sở, lớp dẫn xuất Kế thừa đơn giản  Chưa kế thừa class point{      Chapter Inheritance  float x, y; Hàm thiết lập không tham số; Hàm thiết lập tham số; Hàm thiết lập chép; Hàm tịnh tiến; Hàm hiển thị; }; class coloredpoint{      }; int color; Hàm thiết lập không tham số; Hàm thiết lập tham số; Hàm thiết lập chép; Hàm hiển thị; Kế thừa đơn giản  Sau kế thừa class coloredpoint{   Chapter Inheritance      }; float x, y; // Kế thừa từ lớp point int color; Hàm thiết lập không tham số; Hàm thiết lập tham số; Hàm thiết lập chép; Hàm tịnh tiến; // Kế thừa từ lớp point Hàm hiển thị; // Định nghĩa lại lớp point Chapter Inheritance Kế thừa đơn giản #include #include class point{ private: float x, y; public: point(){ x=0; y=0; } point(float ox, float oy){ x=ox; y=oy; } Tính tương ứng bội Chapter Inheritance  Xây dựng lớp chuồng: class Kennel{ private: int MaxAnimals; // Số vật tối đa int NumAnimals; // Số vật có Animal **Resident; // Mảng chứa thú public: Kennel(int max); // Hàm thiết lập ~Kennel(); // Hàm huỷ bỏ int Accept(Animal *d); // Hàm nhốt thú Animal *Release(int pent); // Hàm thả thú void ListAnimals(); // Hàm hiển thị }; Tính tương ứng bội Chapter Inheritance  Định nghĩa hàm thiết lập hàm huỷ bỏ: Kennel::Kennel(int max) { MaxAnimals = max; NumAnimals = 0; Resident = new Animal *[MaxAnimals]; for (int i=0; i< MaxAnimals; i++) Resident[i] = NULL; } ~Kennel() { delete Resident; } Tính tương ứng bội Chapter Inheritance  Định nghĩa hàm nhốt thú: int Kennel::Accept(Animal *d) { if (NumAnimals ==MaxAnimals) return 0; NumAnimals++; int i=0; while (Resident[i] !=NULL) i++; Resident[i] = d; return i+1; } Tính tương ứng bội Chapter Inheritance  Định nghĩa hàm thả thú: Animal *Kennel::Release(int pen) { if (pen>MaxAnimals) return NULL; pen ; if (Resident[pen] !=NULL){ Animal *temp = Resident[pen]; Resident[pen]=NULL; NumAnimals ; return temp; } else return NULL; } Tính tương ứng bội Chapter Inheritance  Định nghĩa hàm hiển thị thú: void Kennel::ListAnimals() { if (NumAnimals >0) for (int i = 0; i

Ngày đăng: 21/01/2018, 15:46

TỪ KHÓA LIÊN QUAN

w