Trang tài liệu
Khóa học C++ nền tảng
Chương 10. Các khái niệm về ngôn ngữ
Tự động (Loại Trừ kiểu Tự Động)

Tự động (Loại Trừ kiểu Tự Động)

Tự động

auto là một từ khóa trong ngôn ngữ C++ được giới thiệu trong C++11, được sử dụng để loại trừ tự động. Nó tự động suy ra loại biến từ loại biểu thức khởi tạo của nó tại thời điểm biên dịch. Từ khóa auto rất hữu ích khi bạn đang xử lý các loại phức tạp hoặc khi loại biến khó dự đoán. Nó có thể giúp viết mã code sạch hơn và ít bị lỗi hơn.

Đây là một ví dụ đơn giản về việc sử dụng auto để loại trừ kiểu:

#include <iostream>
#include <vector>

int main() {
    // Cách khai báo biến truyền thống:
    int myInt = 5;

    // Sử dụng auto để loại trừ:
    auto myAutoInt = 5; // Automatically deduces the type as 'int'

    // Ví dụ với các kiểu phức tạp hơn:
    std::vector<int> myVector = {1, 2, 3, 4, 5};

    // Không có auto, việc lặp lại vector sẽ như thế này:
    for (std::vector<int>::iterator it = myVector.begin(); it != myVector.end(); ++it) {
        std::cout << *it << std::endl;
    }

    // Với auto, việc khai báo iterator trở nên đơn giản hơn:
    for (auto it = myVector.begin(); it != myVector.end(); ++it) {
        std::cout << *it << std::endl;
    }
}

Hãy nhớ rằng auto suy ra loại dựa trên biểu thức khởi tạo, vì vậy nếu bạn không cung cấp giá trị ban đầu, bạn sẽ gặp lỗi thời gian biên dịch:

auto myVar; // Lỗi: Không thể suy ra loại mà không có bộ khởi tạo

Trong C++14, bạn cũng có thể sử dụng auto với các kiểu trả về của hàm để trình biên dịch tự động suy ra kiểu trả về dựa trên biểu thức được trả về:

auto add(int x, int y) {
    return x + y; // Trình biên dịch suy ra kiểu trả về là 'int'
}