Nếu tôi có một lớp cơ sở:nguồn gốc lớp Constructor Calls
class Base{
...
};
và một lớp có nguồn gốc
class Derived : public Base{
...
}
không lớp được thừa kế này luôn gọi constructor mặc định của lớp cơ sở? tức là hàm tạo không có tham số? Ví dụ Nếu tôi định nghĩa một constructor cho lớp cơ sở:
Base(int newValue);
nhưng tôi không xác định constructor mặc định (các nhà xây dựng parameterless):
Base();
(Tôi nhận ra điều này chỉ là một tuyên bố và không định nghĩa) Tôi gặp lỗi, cho đến khi tôi xác định hàm khởi tạo mặc định không có tham số. Đây có phải là do hàm tạo mặc định của một lớp cơ sở là lớp khởi tạo được gọi bởi một lớp dẫn xuất không?
Bạn có thể kiểm tra bằng cách tạo hàm tạo mặc định trong lớp cơ sở in một thứ gì đó duy nhất cho màn hình. Đây là một cách hay để kiểm tra những thứ như thế này và bạn sẽ học được mọi thứ! –