Bài Tập C++: Hàm Ảo (Virtual Function)

Cập nhật thông tin chi tiết về Bài Tập C++: Hàm Ảo (Virtual Function) mới nhất ngày 30/11/2020 trên website Doisonggiaitri.com. Hy vọng nội dung bài viết sẽ đáp ứng được nhu cầu của bạn, chúng tôi sẽ thường xuyên cập nhật mới nội dung để bạn nhận được thông tin nhanh chóng và chính xác nhất. Cho đến thời điểm hiện tại, bài viết này đã đạt được 6,831 lượt xem.

Đầu tiên chúng ta cùng tìm hiểu khái niệm hàm ảo (virtual function) trong C++ là gì?

Hàm ảo trong C++

Hàm ảo là cơ chế của C++ cho phép cài đặt đa cấu hình động, và được khai báo với từ khóa virtual.

Nếu có nhiều hàm thành viên có cùng tên trong lớp cơ sở và lớp kế thừa, thì các hàm ảo giúp lập trình viên khả năng để gọi hàm thành viên của lớp khác với cùng lời gọi hàm phụ thuộc vào ngữ cảnh khác nhau. Đặc điểm này trong lập trình C++ còn được biết đến với tên gọi là tính đa hình.

Nếu một lớp cơ sở và một lớp kế thừa có cùng hàm và nếu bạn viết code để truy cập hàm đó bởi sử dụng con trỏ của lớp cơ sở, thì hàm trong lớp cơ sở được thực thi ngay cả khi đối tượng của lớp kế thừa được tham chiếu bởi biến con trỏ đó.

Để khai báo hàm ảo, bạn thêm từ khóa virtual trước tên hàm. Bạn theo dõi ví dụ minh họa sau để hiểu hơn cách hàm ảo làm việc.

Trước đó, bạn theo dõi các bước sau:

  • Bước 1: Khai báo lớp cơ sở coso

  • Bước 2: Khai báo và định nghĩa hàm ảo show()

  • Bước 3: Khai báo và định nghĩa hàm display()

  • Bước 4: Tạo lớp kế thừa kethua từ lớp coso

  • Bước 5: Khai báo và định nghĩa các hàm display() và show()

  • Bước 6: Tạo đối tượng của lớp coso và biến con trỏ

  • Bước 7: Gọi hàm display() và show() bởi sử dụng đối tượng và biến con trỏ của lớp coso

  • Bước 8: Tạo đối tượng của lớp kế thừa và gọi hàm display() và show() bởi sử dụng đối tượng và con trỏ của lớp kế thừa

using namespace std; class coso { public: virtual void show() { cout<<"n Hien thi lop co so:"; } void display() { cout<<"n Trung bay lop co so:" ; } }; class kethua:public coso { public: void display() { cout<<"n Trung bay lop ke thua:"; } void show() { cout<<"n Hien thi lop ke thua:"; } }; int main() { coso obj1; coso *p; cout<<"nt P tro toi lop co so:n" ; p=&obj1; cout<<"nnt P tro toi lop ke thua:n"; kethua obj2; p=&obj2; return 0; }

Chạy chương trình C++ trên sẽ cho kết quả như hình sau:

Theo dõi chúng tôi miễn phí trên mạng xã hội facebook và youtube:

Các bạn có thể mua thêm khóa học JAVA CORE ONLINE VÀ ỨNG DỤNG cực hay, giúp các bạn vượt qua các dự án trên trường và đi thực tập Java. Khóa học có giá chỉ 300K, nhằm ưu đãi, tạo điều kiện cho sinh viên cho thể mua khóa học.

Nội dung khóa học gồm 16 chuơng và 100 video cực hay, học trực tiếp tại https://www.udemy.com/tu-tin-di-lam-voi-kien-thuc-ve-java-core-toan-tap/ Bạn nào có nhu cầu mua, inbox trực tiếp a Tuyền, cựu sinh viên Bách Khoa K53, fb: https://www.facebook.com/tuyen.vietjack

Follow facebook cá nhân Nguyễn Thanh Tuyền https://www.facebook.com/tuyen.vietjack để tiếp tục theo dõi các loạt bài mới nhất về Java,C,C++,Javascript,HTML,Python,Database,Mobile…. mới nhất của chúng tôi.

Bài học Bài tập C++ phổ biến tại vietjack.com:

Bạn đang xem bài viết Bài Tập C++: Hàm Ảo (Virtual Function) trên website Doisonggiaitri.com. Hy vọng những thông tin mà chúng tôi đã chia sẻ là hữu ích với bạn. Nếu nội dung hay, ý nghĩa bạn hãy chia sẻ với bạn bè của mình và luôn theo dõi, ủng hộ chúng tôi để cập nhật những thông tin mới nhất. Chúc bạn một ngày tốt lành!