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

Interface trong C++ (Lớp trừu tượng) PDF

4 618 3

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

http://vietjack.com/cplusplus/index.jsp Copyright © vietjack.com Interface C++ (Lớp trừu tượng) Một Interface miêu tả hành vi khả lớp C++ mà không ký thác tới trình triển khai cụ thể lớp Interface C++ triển khai sử dụng Lớp trừu tượng (Abstract class) lớp trừu tượng không nên bị nhầm lẫn với Trừu tượng hóa liệu, mà khái niệm việc giữ Implementation Detail phân biệt với liệu liên kết Một lớp tạo abstract việc khai báo lần hàm hàm pure virtual Một hàm pure virtual xác định việc đặt “= 0” khai báo nó, sau: class Box { public: // pure virtual function virtual double getVolume() = 0; private: double length; // Length of a box double breadth; // Breadth of a box double height; // Height of a box }; Mục đích Lớp trừu tượng (thường gọi tắt ABC) để cung cấp lớp sở thích hợp để từ lớp khác kế thừa Các lớp trừu tượng sử dụng để thuyết minh đối tượng phục vụ Interface Nỗ lực để thuyết minh đối tượng lớp trừu tượng C++ tạo lỗi biên dịch (compilation error) Vì thế, lớp phụ ABC cần thuyết minh, phải triển khai hàm virtual, nghĩa hỗ trợ Interface khai báo ABC Thất bại việc ghi đè hàm pure virtual lớp kế thừa, việc nỗ lực để thuyết minh đối tượng lớp đó, lỗi biên dịch Các lớp, mà sử dụng để thuyết minh đối tượng, gọi Concrete Classtrong C++ http://vietjack.com/ Trang chia sẻ học online miễn phí Page http://vietjack.com/cplusplus/index.jsp Copyright © vietjack.com Ví dụ Lớp trừu tượng C++ Bạn xem xét ví dụ sau: lớp cha cung cấp Interface tới lớp sở để triển khai hàmgetArea() C++: #include using namespace std; // Base class class Shape { public: // pure virtual function providing interface framework virtual int getArea() = 0; void setWidth(int w) { width = w; } void setHeight(int h) { height = h; } protected: int width; int height; }; // Derived classes class Rectangle: public Shape { public: int getArea() { http://vietjack.com/ Trang chia sẻ học online miễn phí Page http://vietjack.com/cplusplus/index.jsp Copyright © vietjack.com return (width * height); } }; class Triangle: public Shape { public: int getArea() { return (width * height)/2; } }; int main(void) { Rectangle Rect; Triangle Tri; Rect.setWidth(5); Rect.setHeight(7); // Print the area of the object cout

Ngày đăng: 02/12/2017, 14:00

Xem thêm:

TỪ KHÓA LIÊN QUAN