Trong C ++, cấu trúc và lớp về cơ bản là giống nhau. Nhưng có một số khác biệt nhỏ. Những khác biệt này giống như bên dưới.
Các thành viên của lớp là riêng tư theo mặc định, nhưng các thành viên của cấu trúc là công khai. Hãy cho chúng tôi xem hai mã này để thấy sự khác biệt.
Mã mẫu
#include <iostream> using namespace std; class my_class { int x = 10; }; int main() { my_class my_ob; cout << my_ob.x; }
Đầu ra
This program will not be compiled. It will generate compile time error for the private data member.
Mã mẫu
#include <iostream> using namespace std; struct my_struct{ int x = 10; }; int main() { my_struct my_ob; cout << my_ob.x; }
Đầu ra
10
Khi chúng tôi dẫn xuất một cấu trúc từ một lớp hoặc cấu trúc, bộ chỉ định truy cập mặc định của lớp cơ sở đó là công khai, nhưng khi chúng tôi dẫn xuất một lớp, bộ chỉ định truy cập mặc định là riêng tư.
Mã mẫu
#include <iostream> using namespace std; class my_base_class { public: int x = 10; }; class my_derived_class : my_base_class{ }; int main() { my_derived_class d; cout << d.x; }
Đầu ra
This program will not be compiled. It will generate compile time error that the variable x of the base class is inaccessible
Mã mẫu
#include <iostream> using namespace std; class my_base_class { public: int x = 10; }; struct my_derived_struct : my_base_class{ }; int main() { my_derived_struct d; cout << d.x; }
Đầu ra
10