01/10/2018, 15:21
Điểm giống nhau giữa class và struct?
struct sv{
int a;
float b;
};
//////////////
class sv{
int a;
float b;
//constructor
//phương thức
}
như mọi người biết khi ta viết như struct như trên là ta đang định nghĩa 1 kiểu dữ liệu mới/đối tượng việc làm như vậy OS sẽ ko cấp phát vùng nhớ vậy class có giống struct ở điểm này ko nhỉ việc ta tạo 1 class mà ko dùng đến cũng giống như ta đang định nghĩa 1 đối tượng ?
Bài liên quan





trong C++
classgiống hệtstruct, chỉ khác là các phương thức/thuộc tính củaclassmặc định làprivate, trong khistructthì mặc định các phương thức/thuộc tính làpublic.class nói chung luôn hả bạn ko riêng gì C++ ?
chỉ riêng C++ thôi. struct với class trong C# khác, C thì ko có class, Java thì ko có struct…
à ngoài ra kế thừa từ base
structmặc định làpublicinheritance, còn kế thừa từ baseclassthì mặc định làprivateinheritance, nhưng chủ yếu ai cũng muốn kế thừa public nên fuck retarded C++ class default inheritance.tóm lại class cũng là định nghĩa 1 đối tượng như struct thôi đúng ko bạn mấy cái kia thì mình sẽ tìm hiểu từ từ
C++ struct định nghĩa 1 đối tượng như C++ class, nói ngược như vậy cho nó khỏi nhầm với C struct. ĐỪNG lầm C++ struct với C struct, 2 cái khác nhau.
thực ra mình học xong C mới qua C++ và học trên nền VS nên struct cũng có thể khai báo constructor hay phương thức nếu mình học qua 1 IDE thuần C thì nó ko cho đúng ko nhỉ ?
đúng, vì C++ struct nó khác C struct. C++ struct có nhiều chức năng hơn, hay có chức năng giống 1 class, mà C thì ko có class, nên thuần C nó sẽ ko nhận nếu C++ struct này có khai báo mấy phương thức của class như ctor, dtor, method, v.v…
nói trong C++ class giống struct thì dễ bị hiểu nhầm giống C struct, nói ngược lại struct trong C++ giống class thì sẽ ko bị lầm vì C đâu có class đâu mà “struct giống class”.
cho mình hỏi thêm là lúc mình định nghĩa thì nó ko có cấp phát vùng nhớ gì đâu đúng ko nhỉ ? chỉ là mình đang định nghĩa đối tượng đó chứ đâu có tạo 1 đối tượng gì đâu.cái này mấy ngôn ngữ khác cũng như thế đúng ko nhỉ ?
class là kiểu tham chiếu .struct là kiểu tham trị
và struct thì nhanh hơn class
hai loại được lưu ở hai vùng nhớ khác nhau (mình ko nhớ tên)
class hỗ trợ đa khế thừa struct thì không
cái này là C# mà, chủ thớt tag C++, học X lộn sang Y coi chừng em nó tẩu hỏa nhâp ma =)
ừ @_@
mình đoán mò đấy là khái niệm chung bạn nhỉ
ko, C++ khác, C++ struct/class object muốn nó nằm trên stack thì nó nằm trên stack, muốn nó nằm trên heap thì nó nằm trên heap, ko phải như ông C# copy Java nằm trên heap hết rồi bị rên đòi tạo object nằm trên stack phải ngược dòng tạo cái “struct” nằm trên stack @_@ Đa kế thừa thì C++ struct class gì chơi tất, struct chỉ là cái tên khác của class với default public thôi.
giờ bàn mới thấy chữ
structtrong các ngôn ngữ loạn hết cả lên =)về mặt ý nghĩa class nó là cái khuôn để tạo ra đối tượng đóng gói dữ liệu và cách thức xử lý dữ liệu đó lại , loại bỏ biến toàn cục chương trình là sự giao tiếp giữa các đối tượng …