我目前正在尝试在我的项目中实现多种继承类。因此,我正在使用成员初始化器列表,并将“变量”一直引用到基类。我真的不确定,为什么会出现编译器错误。
我已经尝试将引用“ int&id”更改为指针“ int * id”。上面的示例只是指出我的问题的一个最小示例:
class Base
{
public:
int& m_id;
Base(int &id)
: m_id(id)
{
}
};
class Derived1: virtual public Base
{
public:
Derived1(int &id) : Base(id)
{
};
};
class Derived2: public Derived1
{
public:
Derived2(int &id) : Derived1(id)
{
};
};
int main()
{
int i = 13;
Derived2 Test(i);
}
Run Code Online (Sandbox Code Playgroud)
尝试编译时出现以下错误消息:
“错误:没有匹配的函数可以调用'Base :: Base()'”
任何想法,我在做什么错?
谢谢你的帮助。