Hãy xem chương trình sau →
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
#include <iostream> using namespace std; class Array { int *values; int size; public: Array(int siz) { size = siz; values = new int[size]; cout << "Array of " << size << " ints constructed." << endl; } ~Array(void) { delete [] values; cout << "Array of " << size << " ints destructed." << endl; } int Get(int ix) { return values[ix]; } void Put(int ix, int val) { values[ix] = val; } }; int main(void) { Array *arr = new Array(2); for(int i = 0; i < 2; i++) { arr->Put(i, i + 100); } for(int i = 0; i < 2; i++) { cout << "#" << i + 1 << ":" << arr->Get(i) << endl; } delete arr; return 0; } |
Array là một lớp xây dựng một mảng rất đơn giản chứa các phần tử kiểu int. Kích thước của mảng được xác định bởi giá trị của tham số truyền cho constructor của lớp. Lớp cung cấp cho chúng ta 2 hàm (phương thức) để truy cập mảng:
- Hàm đầu tiên (tên là Get) trả về giá trị của phần tử được lưu trữ trong ô có chỉ số được xác định bởi giá trị của tham số truyền vào.
- Hàm thứ hai (tên là Put) có thể gán một giá trị mới cho ô đã chọn (các tham số của hàm sẽ xác định chỉ số và giá trị tương ứng).
Vâng, cả hai hàm này đang được code cực kỳ thiếu thận trọng: chúng không kiểm tra giá trị của tham số đầu vào.
Hàm main thực hiện một bài kiểm tra hoạt động đơn giản của class và tạo ra kết quả sau:
1 2 3 4 |
Array of 2 ints constructed. #1:100 #2:101 Array of 2 ints destructed. |