Biểu thị thành phần của phần tử mảng

Một phần của tài liệu Hàm tạo, hàm huỷ và các vấn đề liên quan ppsx (Trang 33 - 35)

Để biểu thị thuộc tính của phần tử mảng đối tợng, ta viết nh sau: Tên_mảng[chỉ số] . Tên_thuộc_tính

Để thực hiện phơng thức đối với phần tử mảng ta viết nh sau: Tên_mảng[chỉ số] . Tên_phơng_thức(danh sách tham số) ;

Ví dụ để vẽ đoạn thẳng nối điểm d[1] với d[2] theo mầu đỏ, ta có thể dùng phơng thức ve_doan_thang nh sau:

d[1].ve_doan_thang(d[2], 4);// Thực hiện phơng thức đối với d[1]

10.4. Ví dụ

Chơng trình dới đây đa vào lớp TS (thí sinh) và xét bài toán: Nhập một danh sách thí sinh, sắp xếp danh sách theo thứ tự giảm của tổng điểm. Chơng trình minh hoạ:

+ Cách dùng mảng đối tợng.

+ Vai trò con trỏ this (trong phơng thức hv(hoán vị)) . + Các hàm tạo, hàm huỷ.

+ Vai trò của toán tử gán (nếu sử dụng phép gán mặc định chơng trình sẽ cho kết quả sai).

//CT4_15.CPP // mang doi tuong // Lop TS (thi sinh)

// Chu y vai tro cua toan tu gan #include <conio.h> #include <iostream.h> #include <string.h> class TS { private: char *ht; double td; public: TS() { ht = new char[20]; td = 0; } ~TS() { delete ht; }

const TS &operator=(const TS &ts2) {

this->td = ts2.td; strcpy(this->ht,ts2.ht); return ts2;

}

void nhap(int i); void in(); double gettd() { return td; } void hv(TS &ts2) { TS tg; tg = *this ; *this = ts2 ; ts2 = tg; } } ; 216 217

void TS::in() {

cout << "\nHo ten: " << ht << " Tong diem: " << td; }

void TS::nhap(int i) {

cout << "\nNhap thi sinh " << i ; cout << "\nHo ten: " ; cin >> ht; cout << "Tong diem: " ; cin >> td; } void main() { TS ts[100]; int n, i, j; clrscr();

cout << "\n So thi sinh: " ; cin >> n;

for (i=1; i<= n; ++i) ts[i].nhap(i);

cout <<"\n Danh sach nhap vao:"; for (i=1; i<= n; ++i)

ts[i].in();

for (i=1; i<n ; ++i) for (j=i+1 ; j<=n; ++j)

if (ts[i].gettd() < ts[j].gettd()) ts[i].hv(ts[j]);

cout <<"\n\n Danh sach sau khi sap xep:"; for (i=1; i<= n; ++i)

ts[i].in(); getch(); }

Đ 11. cấp phát bộ nhớ cho đối tợng

Một phần của tài liệu Hàm tạo, hàm huỷ và các vấn đề liên quan ppsx (Trang 33 - 35)

Tải bản đầy đủ (DOC)

(44 trang)
w