SLIDE1

Saturday, January 31, 2015

PHẠM VI LỚP VÀ TRUY CẬP CÁC THÀNH VIÊN LỚP C++

PHẠM VI LỚP VÀ TRUY CẬP CÁC THÀNH VIÊN LỚP C++
  • Các thành viên dữ liệu của một lớp (các biến khai báo trong định nghĩa lớp) và các hàm thành viên (các hàm khai báo trong định nghĩa lớp) thuộc vào phạm vi của lớp. 
  • Trong một phạm vi lớp, các thành viên của lớp được truy cập ngay lập tức bởi tất cả các hàm thành viên của lớp đó và có thể được tham chiếu một cách dễ dàng bởi tên. 
  • Bên ngoài một phạm vi lớp, các thành viên của lớp được tham chiếu thông qua hoặc một tên đối tượng, một tham chiếu đến một đối tượng, hoặc một con trỏ tới đối tượng.
  •  Các hàm thành viên của lớp có thể được đa năng hóa (overload), nhưng chỉ bởi các hàm thành viên khác của lớp.
  •  Để đa năng hóa một hàm thành viên, đơn giản cung cấp trong định nghĩa lớp một prototype cho mỗi phiên bản của hàm đa năng hóa, và cung cấp một định nghĩa hàm riêng biệt cho mỗi phiên bản của hàm.
  •  Các hàm thành viên có phạm vi hàm trong một lớp – các biến định nghĩa trong một hàm thành viên chỉ được biết tới hàm đó. 
  • Nếu một hàm thành viên định nghĩa một biến cùng tên với tên một biến trong phạm vi lớp, biến phạm vi lớp được dấu bởi biến phạm vi hàm bên trong phạm vi hàm. 
  • Như thế một biến bị dấu có thể được truy cập thông qua toán tử định phạm vi.
  •  Các toán tử được sử dụng để truy cập các thành viên của lớp được đồng nhất với các toán tử sử dụng để truy cập các thành viên của cấu trúc. 
  • Toán tử lựa chọn thành viên dấu chấm (.) được kết hợp với một tên của đối tượng hay với một tham chiếu tới một đối tượng để truy cập các thành viên của đối tượng. 
  • Toán tử lựa chọn thành viên mũi tên (->)được kết hợp với một con trỏ trỏ tới một truy cập để truy cập các thành viên của đối tượng. 
  • Ví dụ 3.4: Chương trình sau minh họa việc truy cập các thành viên của một lớp với các toán tử lựa chọn thành viên

1: #include <iostream.h> 
2:  
3: class Count 
4: {
5:     public:
6:     int X;
7:     void Print()
8:     {
9:         cout << X << endl; 
10:     } 
11: }; 
12: 
13: int main() 
14: { 
15:     Count Counter, //Tạo đối tượng Counter 
16:     *CounterPtr = &Counter, //Con trỏ trỏ tới Counter 
17:     &CounterRef = Counter; //Tham chiếu tới Counter 
18: 
19:     cout << "Assign7 to X and Print using the object's name: "; 
20:     Counter.X = 7; //Gán 7 cho thành viên dữ liệu X 
21:     Counter.Print(); //Gọi hàm thành viên Print 
22: 
23:     cout << "Assign 8 to X and Print using a reference: "; 
24:     CounterRef.X = 8; //Gán 8 cho thành viên dữ liệu X 
25:     CounterRef.Print(); //Gọi hàm thành viên Print 
26: 
27:     cout << "Assign 10 to X and Print using a pointer: "; 
28:     CounterPtr->X = 10; // Gán 10 cho thành viên dữ liệu X 
29:     CounterPtr->Print(); //Gọi hàm thành viên Print 
30:     return 0; 
31: }