[Buổi 26][Vòng đời & operator][Lab] Bài 1: Object Lifecycle Trace


LÀM BÀI

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

Author:
Problem types
Allowed languages
C++

Object Lifecycle Trace

Bối cảnh

Một class in marker ở constructor/destructor để quan sát thứ tự lifetime trong nested scope.

Bạn cần dự đoán output rồi kiểm tra bằng chương trình.

Yêu cầu

  1. Class Trace có name.
  2. Parameterized constructor in C name.
  3. Destructor in D name.
  4. Tạo A, vào scope tạo B, ra scope rồi tạo C.
  5. In đúng thứ tự marker.

Yêu cầu tổ chức code

Phải dùng constructor và destructor để in marker.

Online Judge chấm output. Giảng viên có thể review thêm cấu trúc code để xác nhận học viên luyện đúng kỹ năng OOP của buổi.

Input

Ba token tên a b c.

Output

Các marker mỗi dòng.

Ràng buộc

|name|≤20.

Ví dụ 1

Input

A B C

Output

C A
C B
D B
C C
D C
D A

Giải thích

Object A được tạo trước nên in C A. Trong nested scope, B được tạo rồi khi scope kết thúc destructor B chạy ngay, in D B. Sau đó C được tạo. Khi main kết thúc, object sống gần nhất C bị hủy trước A, nên toàn thứ tự là C A, C B, D B, C C, D C, D A.

Ví dụ 2

Input

One Two Three

Output

C One
C Two
D Two
C Three
D Three
D One

Giải thích

Cùng quy tắc lifetime với tên One, Two, Three. Two nằm trong scope con nên bị hủy sớm; Three tạo sau scope và bị hủy trước One ở cuối hàm. Output phản ánh đúng stack-like lifetime của automatic objects.

Thông tin học tập

  • Module: M07
  • Buổi: B26
  • Loại bài: LAB
  • Độ khó: Medium
  • Concepts: constructors, destructors, object lifetime, nested scope
  • Giới hạn kiến thức: B01-B26
  • Time limit: 1 second(s)
  • Memory limit: 256 MB
  • Point: 100

Comments

There are no comments at the moment.

Zalo