Các cấu trúc và lớp rất giống nhau trong C ++ ngoại trừ một số khác biệt. Vì vậy, chi tiết về những khác biệt này được đưa ra bên dưới để giúp quyết định khi nào sử dụng một lớp hoặc cấu trúc trong C ++.
Sự khác biệt giữa Lớp và Cấu trúc
Tất cả các thành viên của một lớp là riêng tư theo mặc định. Điều này khác với cấu trúc vì tất cả các thành viên của cấu trúc đều được công khai theo mặc định.
Một chương trình thể hiện một lớp trong C ++ được đưa ra như sau -
Ví dụ
#include <iostream> using namespace std; class Example { int val; }; int main() { Example obj; obj.val = 20; return 0; }
Chương trình này dẫn đến lỗi vì val là riêng tư theo mặc định nên không thể truy cập trực tiếp bằng obj.
Một chương trình thể hiện cấu trúc trong C ++ được đưa ra như sau -
Ví dụ
#include <iostream> using namespace std; struct Example { int val; }; int main() { Example obj; obj.val = 20; cout<<"Value is: "<<obj.val; return 0; }
Đầu ra
Kết quả của chương trình trên như sau -
Value is: 20
Chương trình trên hoạt động chính xác vì val là công khai theo mặc định và do đó có thể được truy cập trực tiếp bằng obj.
Một sự khác biệt khác giữa một lớp và một cấu trúc là rõ ràng trong quá trình kế thừa. Khi kế thừa một lớp, định nghĩa truy cập của lớp cơ sở là private theo mặc định. Tương tự, khi kế thừa một cấu trúc, mã xác định truy cập của cấu trúc cơ sở được công khai theo mặc định.