Lập trình hướng đối tượng

Nạp chồng toán tử (operator overloading) trong C++

1. Nạp chồng toán tử (operator overloading) là gì? Nạp chồng toán tử trong C++ là các hàm có tên đặc biệt. Tên hàm gồm từ khóa operator và theo sau là ký hiệu của toán tử đang được định nghĩa. Nạp chồng toán tử được dùng để định nghĩa lại các toán tử có […]

Khái niệm kế thừa và đơn kế thừa trong lập trình hướng đối tượng

1. Khái niệm kế thừa (Inheritance) Tính kế thừa cho phép định nghĩa các lớp mới (lớp dẫn xuất – derived class) từ các lớp đã có (lớp cơ sở – base class). Kế thừa nhằm tái sử dụng lại mã chương trình. Một lớp có thể là lớp cơ sở cho nhiều lớp dẫn […]

Dẫn xuất public, protected, private trong kế thừa và minh họa với C++

Giả sử có một khai báo kế thừa như bên dưới. Lớp Dog đang kế thừa public từ lớp Animal. Ngoài public, chúng ta có thể dùng private, protected. Vậy các dẫn xuất kế thừa này khác nhau như thế nào? 1. Tính kế thừa với các dẫn xuất public, protected, private trong C++ Kế […]

Lớp dẫn xuất (derived class) trong lập trình hướng đối tượng với C++

1. Truy nhập các thành phần trong lớp dẫn xuất Các thành phần của lớp dẫn xuất (derived class) gồm các thành phần khai báo trong lớp dẫn xuất và các thành phần kế thừa được từ lớp cơ sở. Các đối tượng của lớp dẫn xuất có thể truy cập các thành phần của […]

C++ hỗ trợ đa kế thừa trong lập trình hướng đối tượng

1. Đa kế thừa (multiple inheritance) là gì? Lớp dẫn xuất kế thừa từ nhiều lớp cơ sở gọi là đa kế thừa trong C++. Cú pháp: <Từ_khóa_dẫn_xuất> có thể là private, public hoặc protected. Các bạn có thể đọc lại bài Dẫn xuất public, protected, private trong kế thừa và minh họa với C++ […]

Hàm ảo (virtual function) trong lập trình hướng đối tượng với C++

Ở bài này, chúng ta sẽ tìm hiểu hàm ảo (virtual function) trong C++. Bài này có các kiến thức liên quan đến con trỏ đối tượng. Các bạn có thể đọc lại bài Khai báo và sử dụng con trỏ đối tượng trong C++ để xem lại kiến thức đó. 1. Hàm ảo (virtual […]

Hàm thuần ảo (pure virtual function) và lớp trừu tượng (abstract class) trong C++

Trước khi tìm hiểu về hàm thuần ảo (pure virtual function), các bạn nên có kiến thức về kế thừa và hảm ảo. Các bạn có thể đọc lại các bài sau: Khái niệm kế thừa và đơn kế thừa trong lập trình hướng đối tượng Hàm ảo (virtual function) trong lập trình hướng đối […]

Khái niệm đa hình (polymorphism) trong lập trình hướng đối tượng

1. Giới thiệu đa hình (polymorphism) Đa hình (polymorphism) là 1 trong 4 tính chất của lập trình hướng đối tượng. Hiểu đơn giản, trong các tình huống khác nhau, các đối tượng có thể có những hành vi (operator hoặc function) khác nhau để phù hợp với tình huống đó. Trong C++, đa hình […]

Khái niệm lớp cơ sở ảo trong lập trình hướng đối tượng với C++

1. Khai báo lớp cơ sở ảo (virtual base class) Có một vấn đề khi một lớp cơ sở được kế thừa bởi nhiều lớp dẫn xuất. Ví dụ, xét tình huống các lớp kế thừa theo sơ đồ như sau: Hai lớp B và C kế thừa từ lớp A. Lớp D kế thừa […]