Mảng đối tượng trong C++ dựa trên hai khái niệm khác nhau như mảng cấu trúc, khái niệm sau,
- mảng trong C++
- lớp trong C++
Mảng cấu trúc trong C++ và mảng đối tượng đều giống nhau.
Trong mảng đối tượng trong C++, mỗi phần tử của mảng trở thành một đối tượng (cùng lớp), nghĩa là mảng đối tượng trong C++ là tập hợp các đối tượng cùng lớp. Giống như một đối tượng là một tập hợp các thành viên dữ liệu và thành viên chức năng. vì vậy mỗi phần tử của một mảng là một tập hợp thành viên dữ liệu và thành viên hàm.
Mảng đối tượng rất quan trọng vì nếu bạn muốn lưu trữ 10 bản ghi sinh viên thì không cần khai báo 10 đối tượng cho mỗi sinh viên. Bạn có thể biến đối tượng lớp thành một mảng của một phần tử.
Trong một mảng đối tượng, biến đối tượng thành một biến kiểu mảng. Và bởi vì mọi phần tử của mảng bây giờ sẽ là một đối tượng, những đối tượng này được truy cập với giá trị chỉ mục giống như một mảng đơn giản. Trong đó, tên đối tượng sẽ giống nhau nhưng do giá trị chỉ mục khác nhau nên đối tượng cũng sẽ khác.
như bạn có thể thấy sơ đồ dưới đây,
và chúng tôi biết rằng đối tượng là một tập hợp các thành viên dữ liệu và thành viên chức năng, vì vậy,
Ở đây chúng ta đã tạo một đối tượng bằng cách khai báo một mảng các kích thước. Kích thước của mảng càng lớn thì càng nhiều đối tượng được tạo ra. Tạo một đối tượng nghĩa là muốn lưu trữ bao nhiêu sinh viên thì ghi
Hãy thử điều này trong một ví dụ, nơi chúng tôi lưu trữ 2 hồ sơ sinh viên-
#include<iostream>
#include<stdio>
using namespace std;
class student
{
// public member by default
int roll_no;
char name[20];
public: // public member declaration
void get_record(void);
void show_record(void);
};
void student::get_record() // get record by user
{
cout<<"\nEnter roll no: ";
cin>>roll_no;
cout<<"Enter Name : ";
gets(name);
}
void student::show_record() // display record
{
cout<<"\nRoll no: "<<roll_no;
cout<<"\nName : "<<name;
}
int main() // main function
{
student obj[2]; // 2 students
for(int i=0; i<2; i++)
{
cout<<"Enter "<<i+1<<" student record: ";
obj[i].get_record();
}
for(int j=0; j<2; j++)
{
cout<<"\ndisplay "<<j+1<<" student record: ";
obj[j].show_record();
}
return 0;
}
chúng ta cũng có thể sử dụng đoạn mã sau thay cho vòng lặp, nhưng nó chỉ tốt cho 1-2 câu lệnh. chẳng hạn như,
student obj[2];
obj[0].get_record(); //1st student
obj[0].get_record(); //2nd student
obj[1].show_record(); //1st student
obj[1].show_record(); //2nd student
Trong khi đó chúng ta phải sử dụng vòng lặp khi tăng câu lệnh. Bạn có thể hiểu chương trình trên với sự trợ giúp của sơ đồ sau –
đoạn mã trên sẽ cho kết quả như sau.
ĐẦU RA: –
Enter 1 student record:
Enter roll no: 11
Enter Name : Rahul sherma
Enter 2 student record:
Enter roll no: 12
Enter Name : Rakesh sherma
DIsplay 1 student record:
Roll no: 11
Name : Rahul sherma
DIsplay 2 student record:
Roll no: 12
Name : Rakesh sherma
Giải trình:-
vì hai đối tượng ( obj[0], obj[1] ) sẽ được tạo trong chương trình này. Cái nào sẽ lưu trữ hai hồ sơ sinh viên-
Đối tượng đầu tiên obj[0] học sinh đầu tiên và một đối tượng khác obj[1] đang lưu trữ một bản ghi học sinh khác.
Đây là sơ đồ bên dưới, cho thấy hồ sơ của hai sinh viên này đã được lưu trữ như thế nào trong chương trình-
Nếu muốn, bạn có thể lưu 10 bản ghi sinh viên thay vì 2 bằng cách tăng kích thước mảng, Lưu ý ở đây, tên đối tượng giống nhau ( obj ), nhưng do giá trị chỉ mục ( [value] ) khác nhau nên chúng sẽ khác nhau .
bạn có để ý không
một mảng đối tượng, chúng tôi đã sử dụng phương pháp bộ nhớ tĩnh để lưu trữ hồ sơ của học sinh nhưng chúng tôi cũng có thể tạo một đối tượng động và lưu trữ hồ sơ của học sinh, điều này sẽ tốt hơn phương pháp bộ nhớ tĩnh.
thêm về mảng đối tượng
- ví dụ về mảng đối tượng trong C++
- hệ thống quản lý sinh viên bằng C++
- Hệ thống quản lý ngân hàng bằng C++
lớp trước và đối tượng trong C++
hàm next-friend trong C++