Toán tử tạo đối tượng New
Toán tử new
tự động tạo một đối tượng có kích thước tương ứng, gọi hàm tạo của đối tượng và trả về mô tả của đối tượng đã tạo. Trong trường hợp thất bại, toán tử trả về một mô tả null có thể so sánh với hằng số NULL.
Toán tử new
chỉ có thể áp dụng cho các đối tượng lớp. Nó không thể áp dụng cho cấu trúc.
Toán tử không được sử dụng để tạo mảng các đối tượng. Để làm điều này, sử dụng hàm ArrayResize().
Ví dụ:
cpp
//+------------------------------------------------------------------+
//| Tạo hình
//+------------------------------------------------------------------+
void CTetrisField::NewShape()
{
m_ypos=HORZ_BORDER;
//--- ngẫu nhiên tạo một trong 7 hình có thể
int nshape=rand()%7;
switch(nshape)
{
case 0: m_shape=new CTetrisShape1; break;
case 1: m_shape=new CTetrisShape2; break;
case 2: m_shape=new CTetrisShape3; break;
case 3: m_shape=new CTetrisShape4; break;
case 4: m_shape=new CTetrisShape5; break;
case 5: m_shape=new CTetrisShape6; break;
case 6: m_shape=new CTetrisShape7; break;
}
//--- vẽ
if(m_shape!=NULL)
{
//--- cài đặt trước
m_shape.SetRightBorder(WIDTH_IN_PIXELS+VERT_BORDER);
m_shape.SetYPos(m_ypos);
m_shape.SetXPos(VERT_BORDER+SHAPE_SIZE*8);
//--- vẽ
m_shape.Draw();
}
//---
}
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
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
Cần lưu ý rằng mô tả đối tượng không phải là con trỏ đến địa chỉ bộ nhớ.
Một đối tượng được tạo bằng toán tử new
phải được xóa rõ ràng bằng toán tử delete.
Xem thêm
Khởi tạo biến, Phạm vi hiển thị và vòng đời của biến, Tạo và xóa đối tượng