Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C++

Khi nào nên dùng class và khi nào dùng struct trong C++?


Cấu trúc (struct) và lớp (class) rất giống nhau trong C++ trừ một số khác biệt. Chi tiết các khác biệt dưới đây giúp quyết định khi nào dùng class hoặc struct trong C++.

Khác biệt giữa Class và Structure

Tất cả các thành viên của một class mặc định là private. Điều này khác với struct vì tất cả các thành viên của struct mặc định là public.

Chương trình minh họa class trong C++:

Ví dụ

#include <iostream>
using namespace std;

class Example {
    int val;
};

int main() {
    Example obj;
    obj.val = 20; // Lỗi: val là private
    return 0;
}

Chương trình này báo lỗi vì val mặc định là private nên không thể truy cập trực tiếp bằng obj.

Chương trình minh họa struct trong C++:

Ví dụ

#include <iostream>
using namespace std;

struct Example {
    int val;
};

int main() {
    Example obj;
    obj.val = 20;
    cout << "Giá trị là: " << obj.val;
    return 0;
}

Kết quả

Giá trị là: 20

Chương trình trên chạy đúng vì val mặc định là public nên có thể truy cập trực tiếp bằng obj.

Một khác biệt khác giữa class và struct xuất hiện khi kế thừa. Khi kế thừa class, specifier của base class mặc định là private. Ngược lại, khi kế thừa struct, specifier của base struct mặc định là public.