lớp cơ sở ảo được khởi tạo trong lớp có nguồn gốc nhất, vì vậy tôi đoán là kế thừa các nhà xây dựng của lớp cơ sở nên làm việc cũng như:nhà xây dựng Kế thừa các lớp cơ sở ảo
struct base {
base(int) {}
};
struct derived: virtual base {
using base::base;
};
derived d(0);
Tuy nhiên, đây không biên dịch với GCC 5.2.0, cố gắng tìm base::base()
, nhưng hoạt động tốt với Clang 3.6.2. Đây có phải là lỗi trong GCC không?
liên quan: http://stackoverflow.com/questions/2126522/c-virtual-inheritance – SingerOfTheFall