[Buổi 28][Kế thừa][HW] Bài 2: Device → Phone


LÀM BÀI

Points: 100
Time limit: 1.0s
Memory limit: 256M

Author:
Problem types
Allowed languages
C++

Device → Phone

Bối cảnh

Một Device cơ sở lưu brand, còn Phone kế thừa Device và bổ sung storageGB. Báo cáo sản phẩm cần in brand cùng dung lượng. Bài Easy giữ tình huống rất nhỏ để người học nhìn rõ lợi ích reuse: Phone không cần định nghĩa lại brand hay logic khởi tạo brand, mà gọi constructor base rồi lưu field riêng.

Mục tiêu là hiểu object derived chứa một subobject base hoàn chỉnh. Không dùng virtual/polymorphism ở bài này vì đó là nội dung B29.

Ở B28, mục tiêu không phải làm hierarchy càng sâu càng tốt mà là reuse đúng quan hệ is-a. State thuộc lớp cha chỉ nên tồn tại một lần và lớp con dùng lại thông qua constructor/accessor phù hợp. Khi một metric được tạo từ cả field kế thừa và field riêng, hãy xác định rõ lớp nào chịu trách nhiệm tính metric đó để tránh duplicate logic giữa base và derived.

Yêu cầu

  1. Device giữ brand, method label().
  2. Phone kế thừa Device, thêm storageGB.
  3. In brand storageGBGB.

Input

Một dòng brand storage.

Output

Một dòng.

Ràng buộc

1≤storage≤100000.

Ví dụ 1

Input

Apple 128

Output

Apple 128GB

Giải thích

Phone có brand Apple từ phần Device và storage128 từ phần derived. Ghép hai phần state tạo Apple 128GB; suffix GB thuộc rule riêng của Phone.

Ví dụ này cũng kiểm tra đúng luồng kế thừa: phần state của lớp cha được khởi tạo và tái sử dụng, phần riêng của lớp con chỉ bổ sung behavior/dữ liệu cần thiết. Kết quả cuối vì thế phải phản ánh đồng thời dữ liệu inherited và dữ liệu derived, không có field nào bị khai báo lại hoặc bỏ quên.

Ví dụ 2

Input

Samsung 256

Output

Samsung 256GB

Giải thích

Samsung256 tương tự: base giữ Samsung, derived giữ256 và output Samsung 256GB. Ví dụ xác nhận constructor derived truyền đúng brand cho base.

Ví dụ này cũng kiểm tra đúng luồng kế thừa: phần state của lớp cha được khởi tạo và tái sử dụng, phần riêng của lớp con chỉ bổ sung behavior/dữ liệu cần thiết. Kết quả cuối vì thế phải phản ánh đồng thời dữ liệu inherited và dữ liệu derived, không có field nào bị khai báo lại hoặc bỏ quên.

Thông tin học tập

  • Module: M08
  • Buổi: B28
  • Loại bài: HOMEWORK
  • Độ khó: Easy
  • Concepts: inheritance, base method, derived fields
  • Giới hạn kiến thức: B01-B28
  • Time limit: 1 second(s)
  • Memory limit: 256 MB
  • Point: 100

Comments

There are no comments at the moment.

Zalo