Tài liệu: Con trỏ đối tượng

Tài liệu
Phạm Văn Ất

Tóm tắt nội dung

Con trỏ đối tượng
Con trỏ đối tượng

Nội dung

Con trỏ đối tượng dùng để chứa địa chỉ của biến, mảng đối tượng. Nó được khai báo như sau:

Tên_lớp *con trỏ ;     

Vùng lớp DIEM có thể khai báo:

DIEM *p1 , *p2, *p3 ; // khai báo 3 con trỏ p1, p2, p3

DIEM d1, d2 ; // Khai báo 2 đối tượng d1, d2

DIEM d[20] ; // Khai báo mảng đối tượng

và có thể thực hiện các câu lệnh:

p1 = &d2 ; // p1 chứa địa chỉ của d2 , hay p1 trỏ tới d2

p2 = d ; // p2 trỏ tới đầu mảng d

p3 = new DIEM // Tạo một đối tượng và chứa địa chỉ của nó 

// vào p3

Để sử dụng thuộc tính của đối tượng thông qua con trỏ, ta viết như sau:

Tên_con_trỏ->Tên_thuộc_tính

Nếu con trỏ chứa địa chỉ đầu của mảng, có thể dùng con trỏ như tên mảng. Như vậy sau khi thực hiện các câu lệnh trên thì:

p1->x và d2.x là như nhau

p2[i].y và d[i].y là như nhau

Tóm lại ta có quy tắc sau

Quy tắc sử dụng thuộc tính: Để sử dụng một thuộc tính của đối tượng ta phải dùng phép . hoặc phép -> . Trong chương trình, không cho phép viết tên thuộc tính một cách đơn độc mà phải đi kèm tên đối tượng hoặc tên con trỏ theo các mẫu sau:

Tên_đối_tượng.Tên_thuộc_tính     Tên_con_trỏ->Tên_thuộc_tính     Tên_mảng_đối_tượng[chỉ_số].Tên_thuộc_tính     Tên_con_trỏ[chỉ_số].Tên_thuộc_tính     

Chương trình dưới đây cũng sử dụng lớp DIEM (trong §1) để nhập một dẫy điểm, hiển thị và ẩn các điểm vừa nhập. Chương trình dùng một con trỏ kiểu DIEM và dùng toán tử new để tạo ra một dẫy đối tượng.

#include      #include      #include      class DIEM     {     private:     int x, y, m ;     public:     void nhapsl();     void an()     {     putpixel(x,y,getbkcolor());     }     void hien();     };     void DIEM::nhapsl()     {     cout <<"nNhap hoanh do (cot) va tung do (hang) cua diem:" ;     cin >> x >> y ;     cout << " nNhap ma mau cua diem: " ;     cin >> m ;     }     void DIEM::hien()     {     int mau_ht;     mau_ht = getcolor() ;     putpixel(x,y,m);     setcolor(mau_ht);     }     void kd_do_hoa()     {     int mh, mode ;     mh=mode=0;     initgraph(&mh, &mode, "");     }     void main()     {     DIEM *p;     int i, n;     cout << "So diem: " ;     cin >> n;     p = new DIEM[n+1];     for (i=1; i<=n; ++i)     p[i].nhapsl();     kd_do_hoa();     for (i=1; i<=n; ++i)     p[i].hien();     getch();     for (i=1; i<=n; ++i)     p[i].an();     getch();     closegraph();     }     



Nguồn: voer.edu.vn/m/con-tro-doi-tuong/2c6b4c64


Chưa có phản hồi
Bạn vui lòng Đăng nhập để bình luận