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

C++ chuyển đổi con trỏ từ lớp dẫn xuất này sang lớp dẫn xuất khác

In lại Tác giả: Walker 123 Thời gian cập nhật: 28-11-2023 00:43:51 25 4
mua khóa gpt4 Nike

Giả sử mình có một hình lớp và 2 lớp dẫn xuất là hình tròn và hình vuông. Mã là:

Shape* s1 = hình tròn mới;

Bây giờ tôi muốn gán s1 cho bình phương trong khi vẫn giữ lại các biến chung cho cả hai.

Hình dạng* s1 = Hình vuông mới;

Tôi nên làm gì?

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

Bằng cách sử dụng một hàm tạo tham chiếu đến một lớp cơ sở, bạn có thể dễ dàng sao chép các lớp cơ sở Hình dạng dữ liệu:

#include 

lớp enum Màu sắc { đỏ, lục, lam };

lớpHình dạng {
công cộng:
Shape() : màu(đỏ) { }
void setColor(Color new_color) { color = new_color }
Màu getColor() const { trả về màu }
riêng tư:
Màu sắc;
};

lớp Square : hình dạng công khai {
công cộng:
Quảng trường() { }
// Sử dụng hàm tạo rõ ràng để giúp tránh vô tình
// sử dụng sai loại hình dạng.
Square(const Shape &that) rõ ràng : Shape(that) { }
};

lớp Vòng tròn : Hình dạng công khai {
công cộng:
Vòng tròn() { }
Vòng tròn rõ ràng(const Shape &that) : Shape(that) { }
};

int chính(int,char**)
{
Vòng tròn;
round.setColor(Color::blue);
Hình vuông vuông (hình tròn);
khẳng định(circle.getColor()==square.getColor());
}

Về việc chuyển đổi con trỏ từ lớp dẫn xuất này sang lớp dẫn xuất khác trong C++, 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/17392187/

25 4 0
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