01/10/2018, 17:17
Tại sao không thể gọi hàm khởi tạo trong thân của phương thức?
Cho mình hỏi tại sao C++ yêu cầu mình dùng initialization list mà không khởi tạo phần base của derived object trong thân hàm luôn?
Ví dụ: thay vì:
class Base
{
public:
Base(int i) {}
};
class Derived: public Base
{
Derived(): Base(4)
{
}
};
mà không phải
class Base
{
public:
Base(int i) {}
};
class Derived: public Base
{
Derived()
{
Base(4);
}
};
Bài liên quan
Đảm bảo nó luôn được gọi trước nhất
A post was merged into an existing topic: Topic lưu trữ các post off-topic - version 3
A post was merged into an existing topic: Topic lưu trữ các post off-topic - version 3
Vì constructor của superclass phải được thực hiện trước tiên. Nói chung nó là như vậy