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

Tại sao tôi không thể gán cho một Unique_ptr loại uint_8[]?

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

Hãy suy nghĩ về nó, tôi đã khởi tạo duy nhất_ptrNhư thế này:

Unique_ptr pixel{nullptr};

Sau đó, tôi quyết định phân bổ một mảng mới:

pixel = uint_8 mới [10];

Thật không may, nó không cho phép phân bổ một mảng mới có kích thước 10*8. Tôi biết rằng tôi có thể chỉ cần gán std::make_unique(10)Nhưng tôi chỉ muốn biết về con trỏ thông minh.

Về cơ bản, câu hỏi là:

  1. tại sao nó không được phép từ nullptr để chuyển đổi sang một mảng mới?
  2. Đúngnullptr Một số loại cụ thể trong C++ 11?

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

pixel = uint_8 mới [10];

这意味着 toán tử=của std::unique_ptrsẽ được sử dụng. Tuy nhiên, nếu bạn nhìn vào tất cả toán tử= quá tảiBạn sẽ nhận thấy rằng không có tải lại T*std::unique_ptr .

Phương pháp bạn cần được gọi là cài lại và nócài lạiđược lưu trữ trongstd::unique_ptrGiá trị cũ hơn so với giá trị mới hơn trong:

pixel.reset(uint_8 mới[10]);

Giới thiệu về c++ - Tại sao tôi không thể gán cho một Unique_ptr loại uint_8[]? , 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/48104034/

29 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