gpt4 book ai didi

c++ - 如何正确扩展类

转载 作者:行者123 更新时间:2023-11-30 04:18:03 25 4
gpt4 key购买 nike

我尝试扩展类,但使用第一类的构造,我做错了什么?

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";
}
};

最佳答案

您的代码中的问题是您的 Test 类没有“默认”(非参数化)构造函数。所以你需要在子类中显式调用它。

试试下面的代码:

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";
}
};

关于c++ - 如何正确扩展类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16684095/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com