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

Tính đa hình có áp dụng cho các giá trị không? Hoặc sử dụng hàm tạo di chuyển của lớp dẫn xuất khi trả về giá trị (cơ sở)

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

Tôi đang xây dựng một số loại phương pháp xuất xưởng sẽ thực hiện những việc sau Lớp phái sinh 作为 Lớp cơ sở trở lại:

BaseClassFactory() 
{
trả về DerivedClass();
}

Tôi có đúng không?Lớp cơ sở Hàm tạo di chuyển được sử dụng khi tôi gọi phương thức:

Đối tượng BaseClass = Factory();

Vì tôi không thể làm Lớp cơ sở Hàm tạo di chuyển trở thành virtual, có cách nào khác để buộc Lớp phái sinh Hàm tạo di chuyển sẽ bị lấy đi?

Chỉnh sửa1: Thông tin bổ sung - Tôi đã xem xét các con trỏ. Nhưng vấn đề là, tôi muốn xuất một hàm xuất xưởng trong một DLL và tôi muốn làm cho việc này trở nên dễ dàng nhất có thể đối với người dùng. Con trỏ tiêu chuẩn có thể gây rò rỉ bộ nhớ, mặt khác không phải ai cũng quen thuộc với con trỏ thông minh.

Chỉnh sửa2: Theo tôi hiểu, câu hỏi thực sự là: tính đa hình có áp dụng để trả về theo giá trị không?
Câu trả lời là không.

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

Tôi không nghĩ bạn nên làm điều này:

BaseClassFactory() 

Hơn là

// Bạn sẽ cần phải xóa
Nhà máy BaseClass*() {
trả về nguồn gốc mới();
}

// Bạn sẽ không cần xóa
Unique_ptr Nhà máy() {
// return new Derived();
// Như các bình luận đã chỉ ra: thích sử dụng make_unique hơn
return std::make_unique();
}

Nếu không, bạn đangcắt látđối tượng của bạn.

Đa hình chỉ hoạt động trong con trỏ và tham chiếu .

Về C++ - tính đa hình có áp dụng cho các giá trị không? Hoặc sử dụng hàm tạo di chuyển của lớp dẫn xuất khi trả về theo giá trị (cơ sở), 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/55670338/

27 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