Tôi đã tự hỏi liệu có thể tạo ra một mảng các đối tượng khi đối tượng cần những thứ được truyền vào nó cho hàm tạo. Tôi muốn một cái gì đó như thế này:cách tự động khai báo một mảng các đối tượng với một hàm dựng trong C++
MyClass *myVar;
myVar = new MyClass[num]; // I would like to specify the array size after declaration
int i = 0;
for(i = 0;i < num;i++)
myVar[i] = new MyClass(0,0); // I would also like to populate the array with new objects
Tôi biết rằng công trình này:
MyClass *myVar;
myVar = new MyClass[num];
nhưng điều này chỉ hoạt động khi các nhà xây dựng không có gì thông qua vào nó. Là những gì tôi đang cố gắng để làm có thể? Nếu vậy, làm thế nào để làm điều đó?
EDIT: Tôi đã tìm hiểu cách thực hiện bằng cách sử dụng mảng. Đây là cách tôi đã làm điều đó:
MyClass **myVar;
myVar = new MyClass *[num];
for(i = 0;i < num;i++)
myVar[0] = new MyClass(0,0);
Tôi sẽ sử dụng vectơ và như vậy nhưng giáo viên của tôi đã yêu cầu chúng tôi sử dụng mảng cơ bản bất cứ khi nào có thể. Các giải pháp trên tôi thực sự nhận được từ một số mã giáo viên của tôi đã viết. Cảm ơn mọi sự giúp đỡ của bạn!
Cám ơn các bạn giúp đỡ! Tôi đã thực sự tìm kiếm một cách tiếp cận bằng cách sử dụng mảng thay vì vectơ vì giáo viên của tôi đã muốn lớp sử dụng mảng thay thế. Tôi tìm thấy câu trả lời mặc dù. – user972276
@ user972276: Đối với mảng, cách tiếp cận đầu tiên của bạn là những gì người ta có thể làm, nếu bạn muốn gọi hàm tạo không mặc định. Tuy nhiên, trong tương lai, nếu bạn cần mảng, * đầu tiên * xem xét sử dụng 'std :: vector'. Nó là một container tuyệt vời, với rất nhiều tính năng tuyệt vời. – Nawaz