Câu hỏi của em như title ạ.
Làm sao để gọi hàm dựng mặc định trong hàm dựng khác.
Ví dụ như bên java có thể gọi,.
this();
Em muốn khợi gán trước các giá trị mặc định trước khi gán những giá trị mới khác.
Em cảm ơn ạ.
Câu hỏi của em như title ạ.
Làm sao để gọi hàm dựng mặc định trong hàm dựng khác.
Ví dụ như bên java có thể gọi,.
this();
Em muốn khợi gán trước các giá trị mặc định trước khi gán những giá trị mới khác.
Em cảm ơn ạ.
em chỉ cần gán
ThuNghiem(int a)
{
this->a = a;
}
là đủ rồi. this chính là con trỏ tới đối tượng mà em đang khởi tạo, khỏi cần tạo con trỏ ptr rồi cấp phát cho nó cái gì nữa.
cách viết trên có thể viết ngắn lại thành
ThuNghiem(int _a)
{
a = _a; //_a để tránh nhầm lẫn với this->a
}
nhưng trước khi bước vào trong { } thì this->a hay a đã được khởi tạo rồi. Vì vào trong thân hàm khởi tạo thì em có thể sử dụng a ngay, ví dụ
ThuNghiem(int _a)
{
cout << a; //ok, a đã được khởi tạo
a = _a;
}
nhưng cái em muốn ở hàm khởi tạo là khởi tạo giá trị của a. Code trên chỉ gán giá trị cho a chứ ko phải khởi tạo nó. Muốn thật sự khởi tạo a thì em phải viết là
ThuNghiem(int _a) : a(_a) {}
với kiểu gán như thế này thì em ko sợ bị trùng tên, nên có thể viết luôn thành:
ThuNghiem(int a) : a(a) {}
À em hiểu rồi ạ, em cảm ơn anh
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?