CheckPointer
Hàm trả về loại của con trỏ đối tượng.
cpp
ENUM_POINTER_TYPE CheckPointer(
object* anyobject // con trỏ đối tượng
);
1
2
3
2
3
Tham số
anyobject
[truyền vào] Con trỏ đối tượng.
Giá trị trả về
Trả về một giá trị từ bảng liệt kê ENUM_POINTER_TYPE
.
Ghi chú
Việc cố gắng gọi một con trỏ không chính xác sẽ dẫn đến sự chấm dứt nghiêm trọng của chương trình. Do đó, cần phải gọi hàm CheckPointer
trước khi sử dụng một con trỏ. Một con trỏ có thể không chính xác trong các trường hợp sau:
Hàm này có thể được sử dụng để kiểm tra tính hợp lệ của con trỏ. Một giá trị khác 0 đảm bảo rằng con trỏ có thể được sử dụng để truy cập.
Để nhanh chóng xác thực con trỏ, bạn cũng có thể sử dụng toán tử !
(ví dụ) để kiểm tra nó thông qua lời gọi ngầm của hàm CheckPointer
.
Ví dụ:
cpp
//+------------------------------------------------------------------+
//| Xóa danh sách bằng cách xóa các phần tử của nó |
//+------------------------------------------------------------------+
void CMyList::Destroy()
{
//--- con trỏ dịch vụ để làm việc trong vòng lặp
CItem* item;
//--- đi qua vòng lặp và cố gắng xóa các con trỏ động
while(CheckPointer(m_items)!=POINTER_INVALID)
{
item=m_items;
m_items=m_items.Next();
if(CheckPointer(item)==POINTER_DYNAMIC)
{
Print("Đối tượng động ",item.Identifier()," sẽ bị xóa");
delete (item);
}
else Print("Đối tượng không động ",item.Identifier()," không thể bị xóa");
}
//---
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
Xem thêm
Object Pointers
, Checking the Object Pointer
, Object Delete Operator delete