cuốn sách gpt4 ai đã làm

Làm cách nào để xóa con trỏ tới (struct/object) mà không hủy con trỏ bên trong (struct/object)?

In lại Tác giả: Vũ trụ không gian Thời gian cập nhật: 2023-11-04 16:26:39 26 4
mua khóa gpt4 Nike

Nếu tôi có một con trỏ tới một cấu trúc/đối tượng và cấu trúc/đối tượng đó chứa hai con trỏ khác tới các đối tượng khác và tôi muốn xóa đối tượng chứa hai con trỏ này mà không hủy các con trỏ mà nó giữ - Tôi phải làm điều này như thế nào?

Con trỏ tới đối tượng A (chứa con trỏ tới đối tượng B, chứa con trỏ tới đối tượng C). Khi đối tượng A bị xóa, con trỏ tới đối tượng A cũng bị xóa nhưng con trỏ tới đối tượng B/C vẫn tồn tại.

Tôi có phải làm gì để thực hiện công việc này không?

gia hạn

Đây là một dự án trò chơi, tôi hy vọng điều này giải thích được điều đó. Bây giờ, ngay cả khi tôi đặt hai con trỏ tới B, C trong Struct (A) đầu tiên, tôi cũng gặp một số "vấn đề"

người chơi cấu trúc
{
ký tự * Tên;
Vũ khí* Người chơiVũ khí;
Giáp* Người chơiGiáp;
};

cấu trúc vũ khí
{
ký tự * Tên;
int Thiệt hại;
};

cấu trúc áo giáp
{
ký tự * Tên;
kháng chiến int;
};

Điều này không hoạt động ở một mức độ nào đó.

Người chơi* CreatePlayer(char * Tên, Vũ khí* vũ khí, Áo giáp* áo giáp)
{
Người chơi *pPlayer = Người chơi mới;

pPlayer->Tên = tên;
pPlayer->Vũ khí = vũ khí;
pPlayer->Áo giáp = áo giáp;
};

Trang bị không nên bị xóa sau này khi người chơi "chết".

câu trả lời hay nhất

Con trỏ (B & C) chứa trong con trỏ (A) sẽ không bị xóa trừ khi bạn thực hiện điều đó một cách rõ ràng thông qua hàm hủy. Nhưng một khi con trỏ A bị xóa, con trỏ A không còn có thể được sử dụng để truy cập B&C nữa.

Lưu ý: Bạn nên sử dụng hàm tạo sao chép và toán tử = quá tải trong lớp A để tránh sao chép nông.

Nếu bạn muốn sử dụng cùng loại áo giáp và vũ khí cho những người chơi khác, hãy đảm bảo rằng bạn không xóa vũ khí và áo giáp trong hàm hủy diệt của người chơi. Sau đó, bạn có thể sử dụng con trỏ tương tự trên một trình phát khác như thế này.

Vũ khí* vũ khí = CreateWeapon();
Giáp* giáp = CreateArmor();

Người chơi* player1 = CreatePlayer("Alpha", vũ khí, áo giáp);
xóa người chơi1;

Người chơi* player2 = CreatePlayer("Beta", vũ khí, áo giáp);
xóa player2;

Làm cách nào để xóa con trỏ tới (cấu trúc/đối tượng) mà không hủy con trỏ bên trong (cấu trúc/đối tượng)? , chúng tôi đã tìm thấy một câu hỏi tương tự trên Stack Overflow: https://stackoverflow.com/questions/11152629/

26 4 0
không gian vũ trụ
Hồ sơ

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá taxi Didi miễn phí
Phiếu giảm giá taxi Didi
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress