Có thể vượt qua đối tượng chưa được khởi tạo một lớp cha mẹ như trong ví dụ sauTham chiếu đến đối tượng chưa được khởi tạo iniside constructor
class C
{
public:
C(int i):
m_i(i)
{};
int m_i;
}
class T
{
public:
T(C & c):
m_c(c)
{
};
C & m_c;
};
class ST : public T
{
public:
ST():
T(m_ci),
m_ci(999)
{
};
C m_ci;
};
Trong class T
constructor, c
là một tham chiếu đến đối tượng chưa được khởi tạo. Nếu class T
đang sử dụng đối tượng c
trong khi xây dựng, điều này có thể dẫn đến lỗi. Nhưng kể từ khi nó không phải, điều này biên dịch và hoạt động tốt. Câu hỏi của tôi là - nó phanh một số loại mô hình hoặc chỉ thị thiết kế tốt? Nếu vậy, các lựa chọn thay thế là gì, bởi vì tôi thấy hữu ích khi phân bổ một đối tượng theo yêu cầu của cha mẹ trong một lớp con.
Trên một lưu ý phụ, tôi tự hỏi tại sao không thể thay đổi thứ tự khởi tạo, do đó trình tạo lớp cơ sở sẽ được gọi sau khi khởi tạo một số thành viên.