Ví dụ về lập trình hướng đối tượng (OOP) trong C++

Bài viết này cung cấp ví dụ minh họa về lập trình hướng đối tượng (OOP) trong C++, bao gồm các khái niệm như lớp, đối tượng, kế thừa và đa hình.

Trong C++, lập trình hướng đối tượng là một phương pháp lập trình cho phép bạn tổ chức mã theo cách giúp dễ dàng quản lý và mở rộng. Bài viết này sẽ trình bày các khái niệm cơ bản của OOP thông qua các ví dụ thực tiễn.

Mã C++

#include <iostream>
#include <string>

// Lớp cơ sở (Base Class)
class Animal {
public:
    // Phương thức hiển thị thông tin động vật
    virtual void speak() {
        std::cout << "Animal speaks" << std::endl;
    }
};

// Lớp kế thừa (Derived Class) từ Animal
class Dog : public Animal {
public:
    // Ghi đè phương thức speak
    void speak() override {
        std::cout << "Dog barks" << std::endl;
    }
};

// Lớp kế thừa (Derived Class) từ Animal
class Cat : public Animal {
public:
    // Ghi đè phương thức speak
    void speak() override {
        std::cout << "Cat meows" << std::endl;
    }
};

int main() {
    Animal* animal1 = new Dog(); // Tạo đối tượng Dog
    Animal* animal2 = new Cat(); // Tạo đối tượng Cat

    animal1->speak(); // Gọi phương thức speak của Dog
    animal2->speak(); // Gọi phương thức speak của Cat

    delete animal1; // Giải phóng bộ nhớ
    delete animal2; // Giải phóng bộ nhớ

    return 0;
}

Giải thích chi tiết từng dòng code

  • #include <iostream>: Thư viện cho phép sử dụng các chức năng nhập/xuất.
  • #include <string>: Thư viện cho phép sử dụng kiểu dữ liệu chuỗi.
  • class Animal: Khai báo lớp cơ sở Animal.
  • virtual void speak(): Phương thức ảo có thể được ghi đè trong lớp kế thừa.
  • class Dog : public Animal: Khai báo lớp Dog kế thừa từ lớp Animal.
  • void speak() override: Ghi đè phương thức speak từ lớp cơ sở.
  • Animal* animal1 = new Dog(): Tạo đối tượng Dog và gán cho con trỏ kiểu Animal.
  • animal1->speak(): Gọi phương thức speak cho đối tượng Dog.
  • delete animal1;: Giải phóng bộ nhớ cho đối tượng Dog.

Yêu cầu hệ thống:

  • Trình biên dịch C++ (như g++ hoặc MSVC)

Cách cài đặt các thư viện để chạy được đoạn mã C++ trên:

Chỉ cần cài đặt trình biên dịch C++.

Lời khuyên:

  • Nên sử dụng các phương thức ảo để đạt được tính đa hình trong OOP.
  • Hãy chú ý đến việc giải phóng bộ nhớ để tránh rò rỉ bộ nhớ.
Tags: OOP, C++


Các Hướng Dẫn Cùng Chủ Đề Đang Xem

Cách gửi POST dữ liệu tới API bằng C++ sử dụng thư viện libcurl

Hướng dẫn cách gửi dữ liệu đến API bằng phương thức POST trong C++ sử dụng thư viện libcurl. Bài viết sẽ giúp bạn hiểu cách cấu hình và gửi các yêu cầu HTTP POST đến một API RESTful.
Cách tự động đăng nhập vào website sử dụng Selenium với Chrome trong C++

Hướng dẫn cách sử dụng Selenium với ChromeDriver trong C++ để tự động đăng nhập vào một trang web. Bài viết sẽ giải thích cách cấu hình Selenium và ChromeDriver cũng như các bước đăng nhập vào một trang cụ thể.
Chuyển chuỗi Markdown sang HTML bằng C++

Hướng dẫn chi tiết cách chuyển đổi chuỗi Markdown sang HTML bằng C++. Bài viết này sẽ giúp bạn nắm bắt cách sử dụng thư viện Markdown để thực hiện việc chuyển đổi một cách dễ dàng và hiệu quả.
Tạo mã Captcha bằng C++

Hướng dẫn cách tạo mã Captcha bằng ngôn ngữ lập trình C++ với việc sử dụng thư viện đồ họa để tạo hình ảnh và văn bản ngẫu nhiên, giúp bảo vệ các ứng dụng web hoặc phần mềm khỏi các cuộc tấn công tự động.
Tổng hợp tất cả các cách nối chuỗi trong C++

Bài viết này tổng hợp tất cả các cách nối chuỗi trong C++, giúp bạn hiểu rõ về các phương pháp khác nhau từ cơ bản đến nâng cao, bao gồm sử dụng toán tử `+`, hàm `append()`, và các phương thức từ thư viện `string`.
Cách mở ứng dụng Notepad bằng C++

Hướng dẫn cách sử dụng C++ để mở ứng dụng Notepad trên hệ điều hành Windows bằng cách sử dụng lệnh `system()`. Đây là một phương pháp đơn giản để gọi ứng dụng hệ thống từ chương trình C++.
Phân trang kết quả truy vấn MySQL bằng C++

Hướng dẫn chi tiết cách phân trang kết quả truy vấn MySQL bằng C++ với Prepared Statements. Bài viết giúp bạn hiểu cách truy vấn dữ liệu và phân trang hiệu quả trong C++ khi làm việc với MySQL.
Cập nhật dữ liệu trong MySQL bằng C++

Hướng dẫn cách cập nhật dữ liệu trong MySQL bằng C++ sử dụng Prepared Statements để đảm bảo an toàn và hiệu suất khi tương tác với cơ sở dữ liệu. Bài viết cung cấp một ví dụ minh họa dễ hiểu.
Ví dụ về Singleton Pattern trong C++

Bài viết này giới thiệu về Singleton Pattern trong C++, bao gồm cách triển khai và ứng dụng của nó trong việc quản lý đối tượng. Singleton Pattern đảm bảo rằng một lớp chỉ có một thể hiện duy nhất và cung cấp một điểm truy cập toàn cục cho nó.
Xác thực JSON Web Token (JWT) với C++

Bài viết này sẽ hướng dẫn cách sử dụng JSON Web Token (JWT) trong C++ để xác thực người dùng, bao gồm các bước tạo và xác minh token với các thư viện C++ phổ biến.

Đã thêm vào giỏ hàng