[Buổi 26][Vòng đời & operator][Lab] Bài 1: Object Lifecycle Trace
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
- Class Trace có name.
- Parameterized constructor in
C name. - Destructor in
D name. - Tạo A, vào scope tạo B, ra scope rồi tạo C.
- 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