Menu
CoddyTech

Giới thiệu về OOP trong C++

Thuộc phần Lập trình hướng đối tượng trong hành trình C++ của Coddy. Bài học 5 trên 104.

Lập trình hướng đối tượng tổ chức code thành các lớp, kết hợp dữ liệu và hành vi với nhau.

Một lớp đơn giản với các thành viên công khai

class Dog {
public:
    std::string name;
    int age;
    
    std::string bark() {
        return name + " says Woof!";
    }
};

Tạo và sử dụng một đối tượng

Dog dog;
dog.name = "Buddy";
dog.age = 3;

std::cout << dog.bark() << std::endl;

Đầu ra:

Buddy says Woof!

Lớp định nghĩa cấu trúc: lớp lưu trữ dữ liệu gì và có thể thực hiện những hành động nào. Đối tượng là một instance cụ thể mà bạn tạo và sử dụng. Bạn có thể truy cập các thành viên bên dưới public: từ bất cứ đâu.

Trong một dự án, lớp thường nằm trong tệp tiêu đề (Dog.h) chỉ khai báo các phương thức của lớp, còn phần thân của chúng nằm trong tệp .cpp. Ở đó, mỗi tên phương thức được viết với tên lớp và :: (toán tử phân giải phạm vi) ở phía trước:

// Dog.h
#include <string>

class Dog {
public:
    std::string name;
    std::string bark();   // chỉ khai báo
};

// Dog.cpp
#include "Dog.h"

std::string Dog::bark() {
    return name + " says Woof!";
}
challenge icon

Thử thách

Dễ

Tạo một lớp Dog với các thành viên và phương thức công khai:

  • Thành viên công khai: name (chuỗi) và age (số nguyên)
  • bark(): trả về "<name> says Woof!"
  • info(): trả về "<name> is <age> years old"

Tự làm thử

#include <iostream>
#include "Dog.h"

int main() {
    std::string name;
    int age;
    std::getline(std::cin, name);
    std::cin >> age;
    
    Dog dog;
    dog.name = name;
    dog.age = age;
    
    std::cout << dog.bark() << std::endl;
    std::cout << dog.info() << std::endl;
    return 0;
}
quiz iconTự kiểm tra

Bài học này có một bài trắc nghiệm ngắn. Bắt đầu bài học để trả lời và theo dõi tiến độ.

Tất cả bài học trong Lập trình hướng đối tượng

Tự luyện tập: Trình biên dịch C++ online