我最近在我的项目中链接了 log4cpp,并尝试创建一个这样的类:
class ConsoleAppenderSkeleton : public log4cpp::AppenderSkeleton
{
private:
Console& console;
public:
ConsoleAppenderSkeleton(Console& console) : console(console)
{
// Error! no default constructor exists for log4cpp::AppenderSkeleton
}
}
我尝试过的
- 添加另一个构造函数:
ConsoleAppenderSkeleton(void);
- 删除初始化列表
知道是什么原因造成的吗?我知道我需要实现诸如 close() 之类的继承函数,但是这些函数不应导致此错误,并且在 C++ 中,您不会被迫覆盖,它只会以奇怪的方式,如果你不这样做
最佳答案
您没有显式调用基类的构造函数,它也没有空构造函数。它的构造函数需要一个 std::string 参数。当您重写一个类时,您应该注意到这一点。
关于c++ - log4cpp - log4cpp::AppenderSkeleton 不存在默认构造函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19572489/