Đối tượng toàn cục và mảng class
Chúng ta sẽ tìm hiểu về class khi nó là đối tượng toàn cục và khi nó là thành phần trong mảng. Let’s go!
Đối tượng toàn cục
Bài toán
Chúng ta có chương trình sau:
Không thay đổi hàm main, hãy làm chương trình xuất ra dòng chữ:
Cách giải quyết
Chúng ta sẽ ứng dụng constructor và destructor của lớp để giải quyết bài toán sau (với class toàn cục):
Ta thấy biến dummy được khai báo toàn cục sẽ đồng thời tạo constructor (trong đó có câu lệnh cout) và trước khi chương trình kết thúc cũng là lúc destructor được gọi. Thú vị đúng không nào :)
Mảng class
Chúng ta xét đoạn code bên dưới:
Khi chúng ta chạy chương trình, trình biên dịch sẽ báo lỗi
Dựa trên kết quả lỗi, chúng ta nhận thấy khi khởi tạo đối tượng là mảng class Tester 5 phần tử cũng là lúc các constructor của 5 class Tester trong mảng được gọi. Mặt khác không có tham số nào được truyền vào khi khởi tạo nên chúng sẽ gọi constructor mặc định (default constructor) và do chúng ta chưa khai báo nên trình biên dịch đã báo lỗi.
Tổng kết
Mình sẽ tổng kết lại mấy điều sau khi học bài này:
- Biến toàn cục được gọi sẽ khởi động constructor và khởi động destructor khi kết thúc chương trình.
- Khi trình biên dịch gặp câu lệnh khởi tạo mảng class, các class phần tử sẽ khởi động constructor mặc định. Hẹn gặp lại các bạn trong các bài sau. Pie ~