我尝试扩展类,但是使用第一类构造,我做错了什么?
class Test
{
public:
Test(const char *str)
{
cout<<str<<endl;
}
virtual const char *getName() =0;
};
class Babah : public Test
{
const char *getName()
{
return "Babah extends Test";
}
};
答案 0 :(得分:2)
代码中的问题是您的Test
类没有'default'(非参数化)构造函数。所以你需要在子类中明确地调用它。
请尝试以下代码:
class Test
{
public:
Test(const char *str)
{
cout<<str<<endl;
}
virtual const char *getName() =0;
};
class Babah : public Test
{
public:
Babah(): Test("foo") // Call the superclass constructor in the
// subclass' initialization list.
{
// do something with Babah or keep empty
}
const char *getName()
{
return "Babah extends Test";
}
};