Làm thế nào để tạo 1 mảng gồm n đối tượng trong C++

Mình có 1 class là HocSinh, giờ mình muốn tạo ra 1 danh sách gồm n học sinh, mình phải làm như thế nào ?

như khái báo mảng bt thôi

class HocSinh {
   private:
      int tuoi;
   public:
      HocSinh();
};

HocSinh::HocSinh(int i) {
   tuoi = i;
}

int main() {
   HocSinh HS(6) [10]; // Tạo 1 mảng 11 học sinh có tuổi = 6;
   return 0;
}

Có phải ý của bạn là thế này không ?
Mình viết theo kiểu này mà không có được.

hàm ở class là khởi tạo không tham số hàm bên ngoài lại có tham số
còn khai báo thì HocSinh hs[10] thế thôi còn muốn là mặc định 6 tuổi thì để là khởi tạo không tham sô, còn không khai báo mảng song rồi gán từng pt mảng = 1 thằng hs nào đó

2 Likes

Mình làm được rồi, mình khởi tạo hàm toàn cho thêm tham số vào.

muốn cấp phát 1 số lượng đối tượng không xác định trong quá trình chương trình hoạt động thì dùng vector
còn nếu xác định được là có nhiêu phần tử nhưng muốn nhập từ bàn phím thì dùng cấp phát động

//vd
class_type *arr = new class_type[ n ];
//với n ở đây là số lượng được nhập từ bàn phím, không cần để là giá trị cụ thể ngay từ đầu.

chính xác cần phải viết như sau:

class HocSinh {
   private:
      int tuoi;
   public:
      HocSinh( int i ){ tuoi = i; }
};


int main() {
   HocSinh *HS = new HocSinh(6)[10] ; // Tạo 1 mảng 11 học sinh có tuổi = 6;

// lúc này sẽ khai được 10 phần tử HS có tuổi bằng 6...
   return 0;
}
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?