c++ - log4cpp-log4cpp::AppenderSkeleton不存在默认构造函数

标签 c++ inheritance logging log4cpp

我最近在项目中链接了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/

相关文章:

c++ - 具有独特元素的列表

python - super().__init__ 覆盖一个属性

rest - 您如何从 CXF Rest Client 获取日志记录?

java - ClassCastException:org.apache.log4j.Logger 无法转换为 org.owasp.esapi.Logger

java - 在 Eclipse 中禁用 MongoDB 的控制台日志记录

c++ - C++ Guess Number游戏在其他计算机上崩溃并无限循环修复

c++ - std::vector 比普通数组快吗?

c++ - 使用未初始化的指针作为函数参数

c# - 为什么 List<T> 在协变接口(interface) MyInterface<out T> 上无效

javascript - 在构造函数中扩展pixi.js Sprite 来访问父级的属性