30/09/2018, 17:39
Hỏi về cách sử dụng con trỏ khi tạo đối tượng trong C++?
Xin chào mọi người,
Mình có vấn đề như sau :
Vd mình có 1 class Hoso
Bình thường khi tạo 1 đối tượng mới, mình sẽ dùng : Hoso hoso1, Hoso hoso2,… Nhưng hôm nay khi tìm hiểu thì mình thấy có 1 cách tạo khác là dùng con trỏ : Hoso *x = new Hoso;
Và khi xuất size of, nếu dùng con trỏ thì chỉ có 4 bytes, còn dùng 1 đối tượng bình thường thì có thể > 4 bytes.
Vậy mình muốn hỏi là:
- Trong trường hợp này con trỏ có được coi là 1 đối tượng ?
- Size of của 1 con trỏ chỉ có 4 bytes, vậy có phải khi dùng con trỏ sẽ tiết kiệm được bộ nhớ hơn khi dùng 1 đối tượng bình thường không ?
- Việc dùng con trỏ thay cho đối tượng bình thường có ưu điểm gì không ?
Cảm ơn mọi người
Bài liên quan
this can answer your question
What are the differences between a pointer variable and a reference variable in C++?
Mình muốn hỏi về con trỏ được dùng như 1 đối tượng đó bạn, còn bài viết bạn gửi là phân biệt giữa pointer và reference mà
con trỏ với reference là hơi giống nhau, nhưng con trỏ đâu phải là đối tượng cả đều tham chiếu tới đối tượng thôi à
Vậy bạn ơi cho mình hỏi, trong trường hợp này :
Hoso *x = new Hoso;
con trỏ tham chiếu đến đối tượng nào ? Đối tượng đó là gì và ở đâu ? Trong ví dụ mình xem, họ có thể dùng con trỏ như 1 đối tượng vậy á : x.thongtin, x.nhapthongtin(), … Mong bạn giải thích giúp mình, cảm ơn bạn nhiều lắm
Đầu tiên bạn cần phải biết là đối tượng khác và con trỏ khác, con trỏ giống như tham chiếu đều tham chiếu tới đối tượng chứ con trỏ không phải là đối tượng, đối tượng vì đối tượng nó nằm trên heap và nó chỉ là 1 khoảng ô nhớ trên heap và trong ô nhớ đó là những dữ liệu dành cho máy hiểu thôi mình không cần hiểu
Nên trong vi dụ đó thì con trỏ hoạt động cũng như tham chiếu chỉ có vài điều khác biệt giữa 2 cái thôi